diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 176f00042d8dcac17323b22c30d4940e0b0d73ef..227225ef589c9197110ee92a2fa02d809a123606 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -95,6 +95,8 @@ jobs: runs-on: ubuntu-latest needs: build-client strategy: + matrix: + task: [assembleRelease, assembleXiaomi_release, assembleArmv6_release, jacocoTestReportDebug] fail-fast: false steps: - uses: actions/checkout@v3 @@ -141,7 +143,7 @@ jobs: uses: android-actions/setup-android@v2 - name: Build manager with vcpkg - run: ./android/ci_build_vcpkg_manager.sh --skip-client-build + run: ./android/ci_build_vcpkg_manager.sh --skip-client-build --tasks "clean ${{ matrix.task }}" - name: Prepare logs on failure if: ${{ failure() }} @@ -159,31 +161,35 @@ jobs: - name: Upload generic artifacts uses: actions/upload-artifact@v3 + if: ${{ matrix.task == 'assembleRelease' }} with: name: android_manager_${{ github.event.pull_request.head.sha }} path: deploy/android_manager.7z - name: Upload xiaomi manager uses: actions/upload-artifact@v3 + if: ${{ matrix.task == 'assembleXiaomi_release' }} with: name: android_xiaomi_manager_${{ github.event.pull_request.head.sha }} path: deploy/android_manager_xiaomi.7z - name: Upload armv6 only manager uses: actions/upload-artifact@v3 + if: ${{ matrix.task == 'assembleArmv6_release' }} with: name: android_armv6_manager_${{ github.event.pull_request.head.sha }} path: deploy/android_manager_armv6.7z - name: Upload JUnit Tests Results uses: actions/upload-artifact@v3 - if: always() + if: ${{ always() && matrix.task == 'jacocoTestReportDebug' }} with: name: Android_tests_results path: android/BOINC/app/build/test-results/testDebugUnitTest/TEST-*.xml - name: Upload coverage report uses: codecov/codecov-action@v3 + if: ${{ matrix.task == 'jacocoTestReportDebug' }} with: fail_ci_if_error: true verbose: false diff --git a/android/ci_build_vcpkg_manager.sh b/android/ci_build_vcpkg_manager.sh index 57635476281da57f2bc49fe50744e60e0da86380..528ae868c61fd3e6714d1a44e68a7817cecc541e 100755 --- a/android/ci_build_vcpkg_manager.sh +++ b/android/ci_build_vcpkg_manager.sh @@ -14,17 +14,22 @@ if [ ! -d "android" ]; then fi skip_client_build="" +tasks="" while [ $# -gt 0 ]; do key="$1" case $key in --skip-client-build) skip_client_build="yes" ;; + --tasks) + tasks="$2" + shift + ;; *) echo "unrecognized option $key" ;; esac - shift # past argument or value + shift done if [ "x$skip_client_build" = "x" ]; then @@ -35,7 +40,10 @@ cd android/BOINC echo '===== BOINC Manager build start =====' -./gradlew clean assemble jacocoTestReportDebug --warning-mode all +if [ "x$tasks" = "x" ]; then + tasks="clean assemble jacocoTestReportDebug" +fi +./gradlew $tasks --warning-mode all echo '===== BOINC Manager build done ====='