mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 19:41:30 +00:00
331d6712c6
Move the Qt resources required for the build for MacOS and iOS into GitHub, into their own repositories. This removes the need to publish them on an external file server and download them from there for every build. It will also make it easier for contributors to update these resources if needed. Signed-off-by: Michael Keller <github@ike.ch>
88 lines
3.1 KiB
YAML
88 lines
3.1 KiB
YAML
name: Android
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- scripts/docker/**
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
paths-ignore:
|
|
- scripts/docker/**
|
|
branches:
|
|
- master
|
|
|
|
|
|
jobs:
|
|
buildAndroid:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUILD_ROOT: ${{ github.workspace }}/..
|
|
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
|
container:
|
|
image: docker://subsurface/android-build:5.15.2
|
|
|
|
steps:
|
|
- name: checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: atomically create or retrieve the build number and assemble release notes
|
|
id: version_number
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
bash scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release"
|
|
version=$(cat release-version)
|
|
echo "version=$version" >> $GITHUB_OUTPUT
|
|
|
|
- name: store dummy version and build number for non-push build runs
|
|
if: github.event_name != 'push'
|
|
run: |
|
|
echo "100" > latest-subsurface-buildnumber
|
|
echo "CICD-pull-request" > latest-subsurface-buildnumber-extension
|
|
|
|
- name: set up the keystore
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > $KEYSTORE_FILE
|
|
|
|
- name: run build
|
|
id: build
|
|
run: |
|
|
# this is rather awkward, but it allows us to use the preinstalled
|
|
# Android and Qt versions with relative paths
|
|
cd $BUILD_ROOT
|
|
ln -s /android/5.15.* .
|
|
ln -s /android/build-tools .
|
|
ln -s /android/cmdline-tools .
|
|
ln -s /android/ndk .
|
|
ln -s /android/platform-tools .
|
|
ln -s /android/platforms .
|
|
ln -s /android/tools .
|
|
git config --global user.email "ci@subsurface-divelog.org"
|
|
git config --global user.name "Subsurface CI"
|
|
git config --global --add safe.directory $GITHUB_WORKSPACE
|
|
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
|
# get the build number via curl so this works both for a pull request as well as a push
|
|
BUILDNR=$(curl -q https://raw.githubusercontent.com/subsurface/nightly-builds/main/latest-subsurface-buildnumber)
|
|
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
|
export KEYSTORE_FILE="$KEYSTORE_FILE"
|
|
export KEYSTORE_PASSWORD="pass:${{ secrets.ANDROID_KEYSTORE_PASSWORD }}"
|
|
export KEYSTORE_ALIAS="${{ secrets.ANDROID_KEYSTORE_ALIAS }}"
|
|
bash -x ./subsurface/packaging/android/qmake-build.sh -buildnr ${BUILDNR}
|
|
|
|
# only publish a 'release' on push events (those include merging a PR)
|
|
- name: upload binaries
|
|
if: github.event_name == 'push'
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
tag_name: v${{ steps.version_number.outputs.version }}
|
|
repository: ${{ github.repository_owner }}/nightly-builds
|
|
token: ${{ secrets.NIGHTLY_BUILDS }}
|
|
prerelease: false
|
|
fail_on_unmatched_files: true
|
|
files: |
|
|
Subsurface-mobile-${{ steps.version_number.outputs.version }}.apk
|
|
|
|
- name: delete the keystore
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
rm $KEYSTORE_FILE
|