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>
Make the version information used throughout the application and build
process compliant with the SemVer specifications, so that it can be
processed with libraries.
Signed-off-by: Michael Keller <github@ike.ch>
Add parameters to the docker build script for Android, to make it
possible to inject custom configuration when calling it from other
scripts.
Signed-off-by: Michael Keller <github@ike.ch>
Make multiple improvements to the existing workflows:
- create a shared custom action to deal with version number tracking
and generation;
- use this action to add the branch name to the version for pull
request builds;
- create a shared workflow for all debian-ish builds to avoid re-use
by copy / paste;
- remove potential security risks by eliminating the use of
pre-evaluated expressions (`${{ ... }}`) inside scripts;
- update outdated GitHub action versions;
- improve the consistency by renaming scripts acording to have a `.sh`
extension;
- improve naming of generated artefacts for pull requests to include
the correct version.
@dirkh: Unfortunately this is potentially going to break builds when it is
merged, as there is no good way to 'test' a merge build short of
merging.
We'll just have to deal with the fallout of it in a follow-up pull
request.
Signed-off-by: Michael Keller <github@ike.ch>
Do a few things:
- add a build for Debian trixie (as discussed in #4182);
- add a build for Ubuntu 24.04;
- rename the build definitions to match the build names;
- update the artifact uploads to use a non-deprecated version of the
action, and name the artifact appropriately;
- remove a stale workflow file.
Signed-off-by: Michael Keller <github@ike.ch>
Add a script for building the Android APK in the docker container.
Also make some improvements to the Windows build scripts, and update the
documentation for both builds.
Signed-off-by: Michael Keller <mikeller@042.ch>
Do some housekeeping and cleanup on the build scripts for Windows:
- remove Windows 32bit builds as support for this has been removed from
the mxe container;
- fix some warnings in the smtk2ssrf installer configuration;
- sanitise the output colour of the smtk2ssrf build script;
- add a docker based build script for the Windows installers;
- remove outdated and deprecated documentation and scripts.
Signed-off-by: Michael Keller <mikeller@042.ch>
This once again is reasonably specific to the way I have things set up but
might help someone else trying to figure out how to get things done.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
While for the other platforms we can simply copy our binaries (maybe
after signing them), for Fedora and Ubuntu we have to trigger fresh
builds.
The most logical way that I could think of to do this was to push the
same commit corresponding with the intended current release into a
branch named 'current' and have that trigger Copr and Launchpad builds
that post into our release repos.
So 'master' keeps moving forward, keeps creating new build numbers.
At some point we pick a build number that we want to be the next
'current' release. We then update the current branch to the commit that
corresponds to that build number and push the current branch which
triggers new builds in the correct repos on Copr and Launchpad.
This commit removes the silly 'push' argument from the make-package
scripts (after all, they are used to push those packages to the
respective build services) and instead use the branch name as argument
to those scripts - allowing us to pick which repo to push into.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Move the GitHub Action that builds the Windows artefacts to use the new
subsurface/mxe-build:3.1.0 container.
Also rename references to the old container in scripts and
documantation.
Signed-off-by: Michael Keller <github@ike.ch>
It appears that this dependency is no longer provided (as of Mantis), but also
no longer needed (as a build without it appears to completed). Let's see if
that fixes our Mantis build issue.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Move around the scripts required for the setup of the build environment
for android to satisfy docker's requirement of locality.
This allows the removal of an extra copy step, and avoids the creation
of extra artefacts, while still providing the same functionality.
Signed-off-by: Michael Keller <github@ike.ch>
Add signing of the android APK to the scripts used by the CICD pipeline.
Also update the example for running these scripts locally, and add the artefacts generated by doing so to .gitignore.
Signed-off-by: Michael Keller <github@ike.ch>
All version information has to be integers, but at least the full version
allows a fourth digit which we can increment for local commits.
Update the plist fragment and script accordingly.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
While the update to the copyright year really isn't required, it just looks
better.
By using the canonical instead of the git version in user visible strings we
are creating more consistency in how we refer to the version.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Update the android build docker image:
- rebase on ubuntu 22.04;
- add tooling required to sign APKs;
- changes to make the container re-usable;
- change to a multi-stage build to keep the image size smaller;
- generic improvements to the Dockerfile
Also update the example script for how to use the container.
Signed-off-by: Michael Keller <github@ike.ch>
- for now all versions start with v6.0
- CICD builds use the monolithic build number as patch level, e.g. v6.0.12345
- local builds use the following algorithm
- find the newest commit with a CICD build number that is included in the
working tree
- count the number of commits in the working tree since that commit
- if there are no commits since the last CICD build, the local build version
will be v6.0.12345-local
- if there are N commits since the last CICD build, it will be
v6.0.12345-N-local
- test builds in the CICD that don't create artifacts simply use a dummy release
in order to not incorrectly increment the build number and also not to waste
time and resources by manually checking out the nightly-build repo for each of
these builds.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The current XCode and Qt 5.15.2 (the newest version that we can use due to Kirigami
and the lack of binaries for the later open source releases of Qt 5.15) have some
issues. Work around those.
Also, don't create fat armv7/arm64 binaries anymore for iOS - there are no supported
armv7 devices anymore.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
The 'git describe' command finds the most recent tag instead of the
SHA1. When trying to build from a repository without any tags, for
example in a fork, this causes the build to fail.
Use the '--always' option to fallback to the SHA1 in case no tag is
present.
Signed-off-by: Jef Driesen <jef@libdivecomputer.org>