mirror of
https://github.com/AllanWang/Frost-for-Facebook.git
synced 2024-11-09 12:32:30 +01:00
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
This commit is contained in:
parent
8b82044c85
commit
771676db9f
173
.github/workflows/android.yml
vendored
Normal file
173
.github/workflows/android.yml
vendored
Normal file
@ -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 }}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
3
files/.gitignore
vendored
3
files/.gitignore
vendored
@ -3,3 +3,6 @@ release.properties
|
||||
test.keystore
|
||||
test.properties
|
||||
update-dev.sh
|
||||
|
||||
frost.tar
|
||||
frost_github.tar
|
||||
|
BIN
files/frost_github.tar.gpg
Normal file
BIN
files/frost_github.tar.gpg
Normal file
Binary file not shown.
9
files/github_actions.sh
Normal file
9
files/github_actions.sh
Normal file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Add appropriate files for encryption
|
||||
# https://docs.github.com/en/actions/reference/encrypted-secrets#limits-for-secrets
|
||||
|
||||
rm frost_github.tar.gpg
|
||||
tar cvf frost_github.tar release.keystore release.properties test.keystore test.properties
|
||||
gpg --symmetric --cipher-algo AES256 frost_github.tar
|
||||
rm frost_github.tar
|
@ -3,7 +3,8 @@ apply plugin: "com.diffplug.spotless"
|
||||
spotless {
|
||||
kotlin {
|
||||
target "**/*.kt"
|
||||
ktlint().userData(["disabled_rules": "no-wildcard-imports"])
|
||||
// https://github.com/pinterest/ktlint/releases
|
||||
ktlint("0.41.0").userData(["disabled_rules": "no-wildcard-imports"])
|
||||
licenseHeaderFile '../spotless.license.kt'
|
||||
trimTrailingWhitespace()
|
||||
endWithNewline()
|
||||
|
Loading…
Reference in New Issue
Block a user