From 4d9c6aacb869fdff1542c53361e976997259efeb Mon Sep 17 00:00:00 2001 From: ArthurKun <16458204+ArthurKun21@users.noreply.github.com> Date: Fri, 16 May 2025 05:07:34 +0800 Subject: [PATCH 1/2] ci: improve workflow --- .github/workflows/build.yml | 123 ++++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 54 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c2ee5c0f0..781e5ca33 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,59 +1,74 @@ name: CI on: - workflow_dispatch: - push: - pull_request: - schedule: - - cron: '30 5 * * *' + workflow_dispatch: + push: + branches: + - master + paths-ignore: + - '.idea/**' + - '**/*.md' + - '.gitignore' + pull_request: + paths-ignore: + - '.idea/**' + - '**/*.md' + - '.gitignore' + schedule: + - cron: '30 5 * * *' jobs: - ci: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Java 17 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - - name: Validate Gradle wrapper - uses: gradle/actions/wrapper-validation@v3 - - - name: Set up Gradle - uses: gradle/actions/setup-gradle@v3 - with: - cache-read-only: ${{ github.event_name == 'pull_request' }} - - - name: Install NDK - run: | - SDKMANAGER="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" - NDK_VERSION="$(yq .versions.ndk gradle/libs.versions.toml)" - echo "Installing NDK ${NDK_VERSION}" - echo "y" | "$SDKMANAGER" "ndk;$NDK_VERSION" --sdk_root="${ANDROID_SDK_ROOT}" - - - name: Run release build - run: ./gradlew assembleRelease - - - name: Run debug build - run: ./gradlew assembleDebug - - - name: Upload artifact to GitHub - uses: actions/upload-artifact@v4 - with: - name: RedReader-debug.apk - path: build/outputs/apk/debug/RedReader-debug.apk - - - name: Run PMD - run: ./gradlew pmd - - - name: Run checkstyle - run: ./gradlew checkstyle --stacktrace --info - - - name: Android Lint - run: ./gradlew lint - - - name: Unit tests - run: ./gradlew test + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Java 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - name: Validate Gradle wrapper + uses: gradle/actions/wrapper-validation@v4 + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Run assemble debug + run: ./gradlew assembleDebug --parallel + + - name: Run assemble release + run: ./gradlew assembleRelease --parallel + + - name: Upload artifact to GitHub + uses: actions/upload-artifact@v4 + with: + name: RedReader-${{ github.run_number }} + path: build/outputs/apk/debug/RedReader-debug.apk + + checks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v4 + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Run PMD + run: ./gradlew pmd + + - name: Run checkstyle + if: ${{ !cancelled() }} # To continue even if previous step fails + run: ./gradlew checkstyle --stacktrace --info + + - name: Android Lint + if: ${{ !cancelled() }} + run: ./gradlew lint + + - name: Unit tests + if: ${{ !cancelled() }} + run: ./gradlew test \ No newline at end of file From 8bccd763984f2b0b5e69fd36c76a8a1628c97515 Mon Sep 17 00:00:00 2001 From: ArthurKun <16458204+ArthurKun21@users.noreply.github.com> Date: Fri, 16 May 2025 05:27:27 +0800 Subject: [PATCH 2/2] refactor: rename from ci to build --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 781e5ca33..4386c232c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ on: - cron: '30 5 * * *' jobs: - ci: + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4