mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
b3d2a8cdcb
Change the name of the `GITHUB_WORKSPACE` environment variable in the android build script to `OUTPUT_DIR`, which is more intuitive when the script is used for local builds. Also test if the variable is defined before attempting to use it as the target of the build output. Signed-off-by: Michael Keller <github@ike.ch>
94 lines
4 KiB
YAML
94 lines
4 KiB
YAML
name: Android
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
buildAndroid:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: docker://subsurface/android-build-container:5.15.1
|
|
|
|
steps:
|
|
- name: checkout sources
|
|
uses: actions/checkout@v1
|
|
|
|
- name: atomically create or retrieve the build number
|
|
id: build_nr
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
cd .. # check out parallel to subsurface sources
|
|
url="https://subsurface:${{ secrets.NIGHTLY_BUILDS }}@github.com/subsurface/nightly-builds"
|
|
# the clone followed by the pointless push should verify that the password is stored in the config
|
|
# that way the script doesn't need the password
|
|
git clone -b main https://github.com/subsurface/nightly-builds
|
|
cd nightly-builds
|
|
git remote set-url origin "$url"
|
|
git push origin main
|
|
cd ..
|
|
bash -x subsurface/scripts/get-or-create-build-nr.sh ${{ github.sha }}
|
|
|
|
- name: run build
|
|
id: build
|
|
env:
|
|
SUBSURFACE_REPO_PATH: ${{ github.workspace }}
|
|
run: |
|
|
# this is rather awkward, but it allows us to use the preinstalled
|
|
# Android and Qt versions with relative paths
|
|
cd $GITHUB_WORKSPACE/..
|
|
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 .
|
|
ls -l
|
|
git config --global user.email "ci@subsurface-divelog.org"
|
|
git config --global user.name "Subsurface CI"
|
|
# it turns out our build container doesn't have a native compiler
|
|
# yet ECM needs that
|
|
apt-get install --reinstall cpp-7 gcc-7-base libgcc-7-dev libcc1-0 gcc-7
|
|
git config --global --add safe.directory ${SUBSURFACE_REPO_PATH}
|
|
git config --global --add safe.directory ${SUBSURFACE_REPO_PATH}/libdivecomputer
|
|
OUTPUT_DIR=$GITHUB_WORKSPACE bash -x ./subsurface/packaging/android/qmake-build.sh
|
|
|
|
- name: create version number
|
|
id: version_number
|
|
if: github.event_name == 'push'
|
|
run: |
|
|
latest=$(cat ../nightly-builds/latest-subsurface-buildnumber)
|
|
today=$(date '+%Y-%m-%d')
|
|
version="$today.$latest"
|
|
echo "version=$version" >> $GITHUB_OUTPUT
|
|
|
|
# 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: subsurface/nightly-builds
|
|
token: ${{ secrets.NIGHTLY_BUILDS }}
|
|
prerelease: false
|
|
fail_on_unmatched_files: true
|
|
files: |
|
|
Subsurface-mobile*.apk
|
|
body: |
|
|
CICD release artifact
|
|
|
|
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
This build is based on http://github.com/subsurface/subsurface/commit/${{ github.sha }}
|
|
|
|
None of these artifacts are signed.
|
|
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
|
The Windows installer will ask you to confirm installation of an app from an unknown developer.
|
|
The macOS DMG makes it even harder with a multi-step dance that requires opening the Privacy & Security settings in the System Preferences and explicitly confirming that you are willing to install this app.
|
|
|
|
You can find similar Subsurface-Daily builds for [Ubuntu](https://ppa.launchpadcontent.net/subsurface) and Subsurface-test for [Fedora](https://copr.fedorainfracloud.org/coprs/dirkhh/Subsurface-test).
|
|
|
|
Please report any issues with these builds in the [Subsurface user forum](https://groups.google.com/g/subsurface-divelog).
|