From 851f862dbe6c788d0551e7d42e6317735035f6d8 Mon Sep 17 00:00:00 2001 From: aminecmi Date: Wed, 20 Nov 2024 21:44:07 +0100 Subject: [PATCH] chore: Gitea Action --- .drone.yml | 170 ----------------------- .gitea/workflows/on_merge_on_release.yml | 45 ++++++ .gitea/workflows/on_pr.yml | 24 ++++ .gitea/workflows/on_push.yml | 30 ++++ .gitea/workflows/on_tag.yml | 49 +++++++ sonar-project.properties | 5 - 6 files changed, 148 insertions(+), 175 deletions(-) delete mode 100644 .drone.yml create mode 100644 .gitea/workflows/on_merge_on_release.yml create mode 100644 .gitea/workflows/on_pr.yml create mode 100644 .gitea/workflows/on_push.yml create mode 100644 .gitea/workflows/on_tag.yml delete mode 100644 sonar-project.properties diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index f905d7c6..00000000 --- a/.drone.yml +++ /dev/null @@ -1,170 +0,0 @@ -kind: pipeline -type: docker -name: test - -steps: - - name: Lint - failure: ignore - image: mingc/android-build-box:latest - commands: - - echo "---------------------------------------------------------" - - echo "Install linters..." - - curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.0.0/ktlint && chmod a+x ktlint && mv ktlint /usr/local/bin/ - - curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.1/detekt-cli-1.23.1.zip && unzip detekt-cli-1.23.1.zip - - echo "---------------------------------------------------------" - - echo "Linting..." - - ktlint 'shared/**/*.kt' 'androidApp/**/*.kt' '!shared/build' || true - - echo "---------------------------------------------------------" - - echo "Detecting..." - - ./detekt-cli-1.23.1/bin/detekt-cli --all-rules --excludes '**/shared/build/**/*.kt' || true - - echo "---------------------------------------------------------" - command_timeout: 1m - - name: BuildAndTest - image: mingc/android-build-box:latest - commands: - - echo "---------------------------------------------------------" - - echo "Configure gradle..." - - mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties - - echo "---------------------------------------------------------" - - echo "Configure java..." - - . ~/.bash_profile - - jenv global 17.0 - - java --version - - date - - echo "---------------------------------------------------------" - - echo "Building and testing..." - - ./gradlew build - - echo "---------------------------------------------------------" -trigger: - event: - - push - - pull_request - ---- -kind: pipeline -type: docker -name: Publish - -steps: - - name: createTagAndChangelog - image: ubuntu:latest - commands: - - apt-get update && apt-get install -y git - - git fetch --tags -p - - PREV=$(git describe --tags --abbrev=0) - - ./build.sh --publish --from-ci - - VER=$(git describe --tags --abbrev=0) - - CHANGELOG=$(git log $PREV..HEAD --pretty="- %s") - - echo "**$VER**\n\n$CHANGELOG\n\n--------------------------------------------------------------------\n\n$(cat CHANGELOG.md)" > CHANGELOG.md - - git add CHANGELOG.md - - git commit -m "Changelog for $VER [CI SKIP]" - environment: - TZ: Europe/Paris - - - name: git-push - image: appleboy/drone-git-push - settings: - branch: master - remote: - from_secret: remoteUrl - followtags: true - ssh_key: - from_secret: privateKey - skip_verify: true - - - name: scpFiles - image: appleboy/drone-scp - settings: - host: amine-bouabdallaoui.fr - username: ubuntu - key: - from_secret: privateKey - port: 22 - target: /home/ubuntu/ - source: version.txt - - - name: deploy - image: appleboy/drone-ssh - settings: - host: amine-bouabdallaoui.fr - user: ubuntu - key: - from_secret: privateKey - command_timeout: 2m - script: - - cd /home/ubuntu && sudo rm -rf /var/www/amine/version.txt && sudo chown www-data:www-data ./version.txt && sudo mv version.txt /var/www/amine/ - -trigger: - event: - - promote - target: - - production - ---- -kind: pipeline -type: docker -name: Release - -steps: - - name: build - image: mingc/android-build-box:latest - commands: - - echo "---------------------------------------------------------" - - echo "Fetch tags..." - - git fetch --tags - - echo "---------------------------------------------------------" - - echo "Configure gradle..." - - mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=false\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties - - echo "---------------------------------------------------------" - - echo "Generate APK" - - ./gradlew :androidApp:assembleGithubConfigRelease - - echo "---------------------------------------------------------" - - echo "Get Key" - - wget https://amine-bouabdallaoui.fr/key - - echo "---------------------------------------------------------" - - echo "Zipalign" - - $ANDROID_HOME/build-tools/31.0.0/zipalign -f -v 4 androidApp/build/outputs/apk/githubConfig/release/androidApp-githubConfig-release-unsigned.apk androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk - - echo "---------------------------------------------------------" - - echo "Sign" - - $ANDROID_HOME/build-tools/31.0.0/apksigner sign -v --out signed.apk --ks ./key --ks-key-alias $YOUR_KEY_ALIAS --ks-pass pass:$YOUR_KEYSTORE_PASSWORD --v1-signing-enabled true --v2-signing-enabled true androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk - - echo "---------------------------------------------------------" - - echo "Verify" - - $ANDROID_HOME/build-tools/31.0.0/apksigner verify signed.apk - environment: - TZ: Europe/Paris - YOUR_KEYSTORE_PASSWORD: - from_secret: keyPass - YOUR_KEY_ALIAS: - from_secret: keyAlias - - - name: gitea_release - image: plugins/gitea-release - settings: - api_key: - from_secret: giteaAPI - base_url: https://gitea.amine-bouabdallaoui.fr - files: signed.apk - - - name: notify - image: drillster/drone-email - failure: ignore - settings: - host: - from_secret: smtpHOST - port: - from_secret: smtpPORT - username: - from_secret: smtpUSERNAME - password: - from_secret: smtpPASSWORD - from: - from_secret: smtpFROM - subject: Mapping file - recipients: - from_secret: smtpTO - recipients_only: true - skip_verify: true - attachment: androidApp/build/outputs/mapping/githubConfigRelease/mapping.txt -trigger: - event: - - tag \ No newline at end of file diff --git a/.gitea/workflows/on_merge_on_release.yml b/.gitea/workflows/on_merge_on_release.yml new file mode 100644 index 00000000..dcb058a1 --- /dev/null +++ b/.gitea/workflows/on_merge_on_release.yml @@ -0,0 +1,45 @@ +name: Tag +on: + push: + branches: + - release + +jobs: + createTagAndChangelog: + needs: BuildAndTest + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Creating the tag + run: | + git fetch --tags -p + PREV=$(git describe --tags --abbrev=0) + ./build.sh --publish --from-ci + - name: Generating changelog + run: | + VER=$(git describe --tags --abbrev=0) + CHANGELOG=$(git log $PREV..HEAD --pretty="- %s") + echo "**$VER**\n\n$CHANGELOG\n\n--------------------------------------------------------------------\n\n$(cat CHANGELOG.md)" > CHANGELOG.md + git add CHANGELOG.md + git config --global user.email "aminecmi+giteadrone@pm.me" + git config --global user.name "Gitea actions runner" + git commit -m "Changelog for $VER" + git push --tags + - name: copy file via ssh password + uses: appleboy/scp-action@v0.1.7 + with: + host: amine-bouabdallaoui.fr + username: ubuntu + key: ${{ secrets.PRIVATE_KEY }} + source: "version.txt" + target: "/home/ubuntu/" + - name: deploy version file + uses: appleboy/ssh-action@v1.2.0 + with: + host: amine-bouabdallaoui.fr + username: ubuntu + key: ${{ secrets.PRIVATE_KEY }} + script: cd /home/ubuntu && sudo rm -rf /var/www/amine/version.txt && sudo chown www-data:www-data ./version.txt && sudo mv version.txt /var/www/amine/ \ No newline at end of file diff --git a/.gitea/workflows/on_pr.yml b/.gitea/workflows/on_pr.yml new file mode 100644 index 00000000..6176dfaf --- /dev/null +++ b/.gitea/workflows/on_pr.yml @@ -0,0 +1,24 @@ +name: Push/PR Steps +on: + pull_request: + branches: + - master + +jobs: + Lint: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '17' + - name: Install klint + run: curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.0.0/ktlint && chmod a+x ktlint && mv ktlint /usr/local/bin/ + - name: Install detekt + run: curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.1/detekt-cli-1.23.1.zip && unzip detekt-cli-1.23.1.zip + - name: Linting... + run: ktlint 'shared/**/*.kt' 'androidApp/**/*.kt' '!shared/build' || true + - name: Detecting... + run: ./detekt-cli-1.23.1/bin/detekt-cli --all-rules --excludes '**/shared/build/**/*.kt' || true \ No newline at end of file diff --git a/.gitea/workflows/on_push.yml b/.gitea/workflows/on_push.yml new file mode 100644 index 00000000..2fe7203b --- /dev/null +++ b/.gitea/workflows/on_push.yml @@ -0,0 +1,30 @@ +name: Push/PR Steps +on: + pull_request: + branches: + - master + push: + branches: + - master + - release + +jobs: + BuildAndTest: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Fetch tags + run: git fetch --tags -p + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - name: Configure gradle... + run: mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties + - name: Build and test + run: ./gradlew build --stacktrace diff --git a/.gitea/workflows/on_tag.yml b/.gitea/workflows/on_tag.yml new file mode 100644 index 00000000..0a27ea4f --- /dev/null +++ b/.gitea/workflows/on_tag.yml @@ -0,0 +1,49 @@ +name: Tag +on: + push: + tags: + - 'v*' + +jobs: + build: + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Fetch tags + run: git fetch --tags -p + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - name: Configure gradle... + run: mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=false\nsystemProp.org.gradle.internal.http.connectionTimeout=180000\nsystemProp.org.gradle.internal.http.socketTimeout=180000" >> ~/.gradle/gradle.properties + - name: Generate APK + run: ./gradlew :androidApp:assembleGithubConfigRelease + - name: Get Key + run: wget ${{ secrets.KEY_URL }} + - name: Zippalign + run: $ANDROID_HOME/build-tools/31.0.0/zipalign -f -v 4 androidApp/build/outputs/apk/githubConfig/release/androidApp-githubConfig-release-unsigned.apk androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk + - name: Sigh + run: $ANDROID_HOME/build-tools/31.0.0/apksigner sign -v --out signed.apk --ks ./key --ks-key-alias ${{ secrets.KEY_ALIAS }} --ks-pass pass:${{ secrets.KEYSTORE_PASSWORD }} --v1-signing-enabled true --v2-signing-enabled true androidApp/build/outputs/apk/githubConfig/release/android-prod-released-ziped.apk + - name: Verify + run: $ANDROID_HOME/build-tools/31.0.0/apksigner verify signed.apk + - name: Release + uses: https://gitea.com/actions/release-action@main + with: + files: signed.apk + api_key: ${{ secrets.API_KEY }} + - name: Send mail + uses: https://github.com/dawidd6/action-send-mail@v4 + with: + connection_url: ${{ secrets.MAIL_CONNECTION }} + to: ${{ secrets.MAIL_TO }} + from: ${{ secrets.MAIL_FROM }} + subject: Mapping file + priority: high + convert_markdown: true + body: Nouveu fichier de mapping + attachments: androidApp/build/outputs/mapping/githubConfigRelease/mapping.txt \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index 7728e8d8..00000000 --- a/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=RFS2 -sonar.coverage.jacoco.xmlReportPaths=build/reports/kover/merged/xml/report.xml -sonar.sourceEncoding=UTF-8 -sonar.sources=. -sonar.exclusions=shared/src/iosArm64Main/**, shared/src/iosX64Main/**, docs/** \ No newline at end of file