-
Notifications
You must be signed in to change notification settings - Fork 279
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rework CI to only upload artifacts for PR builds
CI now performs build checks on pushes to the master branch only. For pull requests, the dev variant of the app is built and artifacts are uploaded for ease of testing and side-by-side installation. PR builds use the default debug signing keys, resulting in different keys being used for each build on purpose to ensure they cannot be installed over each other, avoiding any possible conflict between two PRs.
- Loading branch information
Showing
4 changed files
with
146 additions
and
130 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# A workflow to verify the build on every push to the master branch | ||
name: Build | ||
|
||
on: | ||
push: | ||
branches: [ master ] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
env: | ||
CMAKE_VERSION: "3.22.1" | ||
NDK_VERSION: "26.1.10909125" | ||
|
||
steps: | ||
- name: Git Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
|
||
- name: Restore CCache | ||
uses: hendrikmuhs/[email protected] | ||
with: | ||
max-size: 3Gi | ||
|
||
- name: Restore Gradle Cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.gradle/ | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}-${{ hashFiles('app/**.kt', 'app/**.java') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}- | ||
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}- | ||
${{ runner.os }}-gradle- | ||
- name: Install Java 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'temurin' # Temurin should come pre-installed on GitHub-hosted runners | ||
java-version: '17' | ||
|
||
- name: Install Ninja Build | ||
run: | | ||
sudo apt-get install -y ninja-build | ||
ln -s /usr/bin/ninja . | ||
- name: Install CMake & Android NDK | ||
run: echo "yes" | $ANDROID_HOME/tools/bin/sdkmanager "cmake;${{ env.CMAKE_VERSION }}" "ndk;${{ env.NDK_VERSION }}" --channel=3 | grep -v = || true | ||
|
||
- name: Android Assemble | ||
env: | ||
CMAKE_C_COMPILER_LAUNCHER: "ccache" | ||
CMAKE_CXX_COMPILER_LAUNCHER: "ccache" | ||
CCACHE_COMPILERCHECK: "string:${{ env.NDK_VERSION }}" # Use NDK version instead of compiler timestamp | ||
run: ./gradlew --stacktrace --build-cache --parallel --configure-on-demand assembleMainlineRelease |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# A workflow to build and upload APKs for pull requests | ||
name: PR Build | ||
|
||
on: | ||
pull_request: | ||
types: [ opened, synchronize, reopened ] | ||
branches: [ master ] | ||
|
||
# Only allow the latest build to run for a given PR, and cancel any previous builds | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
env: | ||
CMAKE_VERSION: "3.22.1" | ||
NDK_VERSION: "26.1.10909125" | ||
|
||
steps: | ||
- name: Git Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
|
||
- name: Restore CCache | ||
uses: hendrikmuhs/[email protected] | ||
with: | ||
max-size: 3Gi | ||
|
||
- name: Restore Gradle Cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.gradle/ | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}-${{ hashFiles('app/**.kt', 'app/**.java') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}- | ||
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}- | ||
${{ runner.os }}-gradle- | ||
- name: Install Java 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'temurin' # Temurin should come pre-installed on GitHub-hosted runners | ||
java-version: '17' | ||
|
||
- name: Install Ninja Build | ||
run: | | ||
sudo apt-get install -y ninja-build | ||
ln -s /usr/bin/ninja . | ||
- name: Install CMake & Android NDK | ||
run: echo "yes" | $ANDROID_HOME/tools/bin/sdkmanager "cmake;${{ env.CMAKE_VERSION }}" "ndk;${{ env.NDK_VERSION }}" --channel=3 | grep -v = || true | ||
|
||
- name: Android Assemble | ||
env: | ||
CMAKE_C_COMPILER_LAUNCHER: "ccache" | ||
CMAKE_CXX_COMPILER_LAUNCHER: "ccache" | ||
CCACHE_COMPILERCHECK: "string:${{ env.NDK_VERSION }}" # Use NDK version instead of compiler timestamp | ||
PR_NUMBER: ${{ github.event.number }} | ||
run: ./gradlew --stacktrace --build-cache --parallel --configure-on-demand assembleDevRelease assembleDevReldebug | ||
|
||
- name: Rename APKs | ||
run: | | ||
mv app/build/outputs/apk/dev/release/app-dev-release.apk strato-pr${{ github.event.number }}-release.apk | ||
mv app/build/outputs/apk/dev/reldebug/app-dev-reldebug.apk strato-pr${{ github.event.number }}-reldebug.apk | ||
- name: Upload Release APK | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: strato-pr${{ github.event.number }}-release.apk | ||
path: strato-pr${{ github.event.number }}-release.apk | ||
|
||
- name: Upload Debug APK | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: strato-pr${{ github.event.number }}-reldebug.apk | ||
path: strato-pr${{ github.event.number }}-reldebug.apk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters