mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-01 06:30:26 +00:00
df4358d252
Use the version information detected in the manage-version action, as the actual build is happening in the speculative post-merge branch, resulting in a bogus 'commit distance' number. Signed-off-by: Michael Keller <github@ike.ch>
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
name: Android
|
|
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- scripts/docker/**
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
paths-ignore:
|
|
- scripts/docker/**
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build:
|
|
env:
|
|
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: docker://subsurface/android-build:5.15.2
|
|
|
|
steps:
|
|
- name: checkout sources
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: set the version information
|
|
id: version_number
|
|
uses: ./.github/actions/manage-version
|
|
with:
|
|
nightly-builds-secret: ${{ secrets.NIGHTLY_BUILDS }}
|
|
|
|
- name: set up the keystore
|
|
if: github.event_name == 'push'
|
|
env:
|
|
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
|
run: |
|
|
echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > $KEYSTORE_FILE
|
|
|
|
- name: run build
|
|
id: build
|
|
env:
|
|
KEYSTORE_PASSWORD: pass:${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
|
KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
|
|
BUILDNR: ${{ steps.version_number.outputs.buildnr }}
|
|
VERSION: ${{ steps.version_number.outputs.version }}
|
|
VERSION_4: ${{ steps.version_number.outputs.version_4 }}
|
|
run: |
|
|
# this is rather awkward, but it allows us to use the preinstalled
|
|
# Android and Qt versions with relative paths
|
|
cd ..
|
|
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
|
|
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
|
bash -x ./subsurface/packaging/android/qmake-build.sh -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4
|
|
|
|
- name: delete the keystore
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
rm $KEYSTORE_FILE
|
|
|
|
- name: publish pull request artifacts
|
|
if: github.event_name == 'pull_request'
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Subsurface-Android-${{ steps.version_number.outputs.version }}
|
|
path: Subsurface-mobile-*.apk
|
|
|
|
# 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@v2
|
|
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
|