From 771676db9f4fb3cf525b8f40fb1d7b1dbac59405 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 12 Sep 2021 01:01:06 -0700 Subject: Github actions (#1797) * Add android workflow * Test without dynamic artifact name * Add back spotless ktlint version * Always decrypt secret * Ignore ci for l10n_dev [skip ci] * Rename test asset * Use github run number var * Test github context var * Add legacy build release * Test step 1 * Test next steps * Test prev version step * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Partial test * Enable full flow * Test build * Test build * Full release v2 * Use pitched apps email * Echo release link [skip ci] * Fix should release --- .github/workflows/android.yml | 173 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 .github/workflows/android.yml (limited to '.github') diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 00000000..1d2db150 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,173 @@ +name: Android CI + +on: + push: + branches: + - '*' + - '!l10n_dev' + +jobs: + build: + +# if: ${{ false }} + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 100 + + - name: Fetch all tags + run: git fetch origin +refs/tags/*:refs/tags/* + + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + java-package: jdk + distribution: 'adopt' + cache: gradle + + - name: Validate gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Decrypt secret + run: | + gpg -d --passphrase "${{ secrets.FROST_TAR_SECRET }}" --batch "files/frost_github.tar.gpg" > "files/frost_github.tar" + tar xvf files/frost_github.tar -C files + + - name: Checkout Gradle Build Cache + if: ${{ steps.self_hosted.outputs.FLAG != 'self-hosted' }} + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + !~/.gradle/wrapper/dists/**/gradle*.zip + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + gradle-${{ runner.os }}- + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Android Git Version + run: ./gradlew --quiet androidGitVersion + + - name: Check and Test + run: ./gradlew spotlessCheck lintReleaseTest testReleaseUnitTest + + - name: Assemble + run: ./gradlew assembleReleaseTest + + - name: Upload Test APK + uses: actions/upload-artifact@v2.2.4 + with: + name: Frost-releaseTest.apk + path: app/build/outputs/apk/releaseTest/Frost-releaseTest.apk + if-no-files-found: error + + # Tests artifact upload + build-test: + + if: ${{ false }} + + runs-on: ubuntu-latest + + steps: + - name: Create + run: | + mkdir apk + echo "apk test" > apk/Frost-releaseTest.apk + + - name: Upload Test APK + uses: actions/upload-artifact@v2.2.4 + with: + name: Frost-releaseTest.apk + path: apk/Frost-releaseTest.apk + if-no-files-found: error + + release-test: + + runs-on: ubuntu-latest + + needs: build + + env: + GITHUB_TOKEN: ${{ secrets.TEST_RELEASE_GITHUB_API_TOKEN }} + OWNER: AllanWang + REPO: Frost-for-Facebook-APK-Builder + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + repository: "${{ env.OWNER }}/${{ env.REPO }}" + token: ${{ env.GITHUB_TOKEN }} + + # Contiguous to release IDs from Travis builds + - name: Current Version + run: | + CURR_ID=$(( ${{ github.run_number }} + 2914 )) + echo "RELEASE_ID_NUMBER=${CURR_ID}" >> $GITHUB_ENV + + - name: Should Release + run: | + PREV_ID=$(cat Frost.txt | grep -o -E '[0-9]'+) + SHOULD_RELEASE=$( if [[ ${{ env.RELEASE_ID_NUMBER }} -gt $PREV_ID ]]; then; echo true; else; echo false; fi; ) + echo "Prev $PREV_ID Now ${{ env.RELEASE_ID_NUMBER }} Should Release $SHOULD_RELEASE" + echo "SHOULD_RELEASE=${SHOULD_RELEASE}" >> $GITHUB_ENV + + - name: Update File + if: ${{ env.SHOULD_RELEASE }} + run: echo "Frost v${{ env.RELEASE_ID_NUMBER }}" > Frost.txt + + - name: Create Commit + if: ${{ env.SHOULD_RELEASE }} + id: create_commit + uses: EndBug/add-and-commit@v7 + with: + message: 'Github Action ${{ env.RELEASE_ID_NUMBER }} [skip ci]' + tag: 'v${{ env.RELEASE_ID_NUMBER }}' + author_name: Pitched Apps CI + author_email: pitchedapps@gmail.com + branch: master + push: true + + # After commit + - name: Download APK + uses: actions/download-artifact@v2 + with: + name: Frost-releaseTest.apk + + - name: Rename APK + run: | + mv Frost-releaseTest.apk Frost-releaseTest-v${{ env.RELEASE_ID_NUMBER }}.apk + ls -l + + - name: Create Release + if: ${{ env.SHOULD_RELEASE && steps.create_commit.outputs.pushed }} + uses: ncipollo/release-action@v1 + with: + token: ${{ env.GITHUB_TOKEN }} + owner: ${{ env.OWNER }} + repo: ${{ env.REPO }} + artifactErrorsFailBuild: true + artifacts: "Frost-releaseTest-v${{ env.RELEASE_ID_NUMBER }}.apk" + artifactContentType: "application/zip" + body: | + Automatic Release v${{ env.RELEASE_ID_NUMBER }} for branch `${{ github.ref }}` + https://github.com/${{ github.repository }}/commit/${{ github.sha }} + tag: 'v${{ env.RELEASE_ID_NUMBER }}' + allowUpdates: false + + - name: Echo Result + run: echo "Created release at https://github.com/${{ env.OWNER }}/${{ env.REPO }}/releases/tag/v${{ env.RELEASE_ID_NUMBER }}" + + + + + + -- cgit v1.2.3