From 5b9b51c02de5b985e86b2b6617153623c0aacb76 Mon Sep 17 00:00:00 2001 From: aminecmi Date: Sat, 23 Nov 2024 15:19:29 +0100 Subject: [PATCH] chore: Gitea Action --- .gitea/workflows/common_build.yml | 24 ++++++ .gitea/workflows/on_merge_on_release.yml | 95 +++++++++++++++++++++--- .gitea/workflows/on_pr.yml | 6 +- .gitea/workflows/on_push.yml | 27 +------ .gitea/workflows/on_tag.yml | 49 ------------ README.md | 2 +- 6 files changed, 117 insertions(+), 86 deletions(-) create mode 100644 .gitea/workflows/common_build.yml delete mode 100644 .gitea/workflows/on_tag.yml diff --git a/.gitea/workflows/common_build.yml b/.gitea/workflows/common_build.yml new file mode 100644 index 0000000..8db1abc --- /dev/null +++ b/.gitea/workflows/common_build.yml @@ -0,0 +1,24 @@ +name: Build +on: + workflow_call: + +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_merge_on_release.yml b/.gitea/workflows/on_merge_on_release.yml index dcb058a..14eeac4 100644 --- a/.gitea/workflows/on_merge_on_release.yml +++ b/.gitea/workflows/on_merge_on_release.yml @@ -1,33 +1,51 @@ -name: Tag +name: Create tag on: push: branches: - release + workflow_dispatch: jobs: + build: + uses: ./.gitea/workflows/common_build.yml createTagAndChangelog: - needs: BuildAndTest runs-on: ubuntu-latest + needs: build steps: - name: Check out repository code uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Creating the tag + - name: Config git + run: | + git config --global user.email aminecmi+giteadrone@pm.me + git config --global user.name giteadrone + - name: Creating the tag and generate changelog 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 + echo "**$VER + + $CHANGELOG + + -------------------------------------------------------------------- + + $(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: Push changes + uses: appleboy/git-push-action@v1.0.0 + with: + author_name: giteadrone + author_email: aminecmi+giteadrone@pm.me + remote: ${{ secrets.REMOTE_URL }} + followtags: true + ssh_key: ${{ secrets.PRIVATE_KEY }} + tags: true + branch: release - name: copy file via ssh password uses: appleboy/scp-action@v0.1.7 with: @@ -42,4 +60,61 @@ jobs: 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 + 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/ + release: + runs-on: ubuntu-latest + needs: createTagAndChangelog + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Fetch tags + id: version + run: | + git fetch --tags -p + PREV=$(git describe --tags --abbrev=0) + echo $PREV + echo "VERSION=$PREV" >> $GITHUB_OUTPUT + - 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: setup go + uses: https://github.com/actions/setup-go@v4 + with: + go-version: '>=1.20.1' + - name: Generate APK + run: ./gradlew :androidApp:assembleGithubConfigRelease + - name: Get Key + run: wget ${{ secrets.KEY_URL }} + - name: Zippalign + run: | + sdkmanager "build-tools;31.0.0" + ls $ANDROID_HOME/build-tools + $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/gitea-release-action@main + with: + files: signed.apk + token: ${{ secrets.API_KEY }} + tag_name: ${{ steps.version.outputs.VERSION }} + - 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: Nouveau fichier de mapping + attachments: androidApp/build/outputs/mapping/githubConfigRelease/mapping.txt \ No newline at end of file diff --git a/.gitea/workflows/on_pr.yml b/.gitea/workflows/on_pr.yml index 6176dfa..81aa997 100644 --- a/.gitea/workflows/on_pr.yml +++ b/.gitea/workflows/on_pr.yml @@ -1,4 +1,4 @@ -name: Push/PR Steps +name: Check PR code on: pull_request: branches: @@ -21,4 +21,6 @@ jobs: - 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 + run: ./detekt-cli-1.23.1/bin/detekt-cli --all-rules --excludes '**/shared/build/**/*.kt' || true + build: + uses: ./.gitea/workflows/common_build.yml \ No newline at end of file diff --git a/.gitea/workflows/on_push.yml b/.gitea/workflows/on_push.yml index 2fe7203..101d35b 100644 --- a/.gitea/workflows/on_push.yml +++ b/.gitea/workflows/on_push.yml @@ -1,30 +1,9 @@ -name: Push/PR Steps +name: Check master code 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 + build: + uses: ./.gitea/workflows/common_build.yml \ No newline at end of file diff --git a/.gitea/workflows/on_tag.yml b/.gitea/workflows/on_tag.yml deleted file mode 100644 index 0a27ea4..0000000 --- a/.gitea/workflows/on_tag.yml +++ /dev/null @@ -1,49 +0,0 @@ -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/README.md b/README.md index d5089b7..d58f904 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ReaderForSelfoss-multiplatform [![Build Status](https://build.amine-bouabdallaoui.fr/api/badges/Louvorg/ReaderForSelfoss-multiplatform/status.svg)](https://build.amine-bouabdallaoui.fr/Louvorg/ReaderForSelfoss-multiplatform) +# ReaderForSelfoss-multiplatform [![Build Status](https://gitea.amine-bouabdallaoui.fr/Louvorg/ReaderForSelfoss-multiplatform/actions/workflows/on_push.yml/badge.svg)](https://gitea.amine-bouabdallaoui.fr/Louvorg/ReaderForSelfoss-multiplatform/actions?workflow=on_push.yml&actor=0&status=0) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/readerforselfoss/localized.svg)](https://crowdin.com/project/readerforselfoss)