Commit graph

51 commits

Author SHA1 Message Date
Michael Keller
d018b72dab CICD: Fix Signing of Android CICD Built Packages.
Fix the signing of Android .apk packages when they are build in CICD.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-05-14 15:21:05 +12:00
Michael Keller
6ae2844f24 CICD: Fixup Merge Build Workflows on master.
Signed-off-by: Michael Keller <mikeller@042.ch>
2024-05-13 11:07:05 +12:00
=Michael Keller
6fc8310705 CICD: Improve Workflows.
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>
2024-05-13 10:19:59 +12:00
Michael Keller
331d6712c6 CICD: Move MacOS / iOS Build Qt Resources into GitHub.
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>
2024-05-12 10:19:24 +12:00
Michael Keller
c1bfded4a7 CICD: Add GitHub Action to build the Windows (MXE) Builder Docker Image.
Add a GitHub action that builds the docker image to run builds for the
Windows (MXE) version of Subsurface.
Also update the MXE image Dockerfile to the latest version of MXE, and
add a patch to use a current version of mdbtools.
Configure GitHub actions that do not build docker images to not trigger
on changes to the contents of `scripts/docker/`.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-20 21:30:12 -08:00
Michael Keller
4bab38b8df CICD: Make it Possible to Run CICD Builds in a Fork.
Use the project name to resolve the target repository to create the release in.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-15 19:53:54 -08:00
Dirk Hohndel
2f464c114d CICD: attempt to read file content in GH yaml
It is very strange that in some yaml files the $(<release-version) construct
works just fine, but in others it evaluates to an empty string, even though the
file is there an has the correct content.

Attempting to get more debugging info and also use a different expression to
extract the information.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-10 17:13:53 -08:00
Dirk Hohndel
c2acdafcdf build-system: fix the APK filename for release upload
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-10 16:58:08 -08:00
Michael Keller
506a96f1f6 CICD: Fix GitHub Actions.
Fix the setting of environment variables in the android build.
Also fix a typo in the AppImage build.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-10 13:44:06 -08:00
Dirk Hohndel
9aa9bec914 build-system: use GitHub Actions outputs
Tempting as it is to think this is just like bash - yaml isn't bash at all.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-10 13:44:06 -08:00
Dirk Hohndel
30efede730 build-system: small changes for better debugging
In order to make it easier to see what's happening inside get-atomic-buildnr.sh
write the result to a file that can be read by the caller. Not quite as
elegant, but hopefully more practical to see what's going wrong when no new
build number is created.

Make sure that post-releasenotes is successfull by actually posting a release
artifact (apparently the gh release action otherwise quietly fails).

Try to ensure we find the Android APK when uploading to the release.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-10 11:54:44 -08:00
Dirk Hohndel
c33e05c1d4 build-system: create release notes only once
Some experimentation showed what should have been obvious. The release
information is additive. So it's enough if ONE of the actions creates release
notes, all the others can simply add additional release artifacts.

To make this more obvious, this commit creates a new action that does nothing
but create the release notes and publish the release. Since it really doesn't
do anything else, it's likely to be the quickest to complete, but that doesn't
matter - the last action that has a body or body_path in the gh-release action
determines the release notes. And we now have exactly one action that does so.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-10 09:17:49 -08:00
Dirk Hohndel
14e715be6e build-system: assemble release notes using gh CLI
Instead of using a thirdparty action and painfully passing things around,
simply use the GitHub CLI (gh) and assemble the release notes on the fly.

This makes for much simpler and much easier to maintain code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-09 17:14:42 -08:00
Michael Keller
867d31bcbc Another Fix for the android Action.
Signed-off-by: Michael Keller <github@ike.ch>
2024-01-10 07:25:23 +13:00
Michael Keller
deab622c3e CICD: Fix the android Action.
Fix the android action.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-10 07:17:05 +13:00
Dirk Hohndel
7286a76233 build-system: simplify GitHub Actions
Move both code and the release note text into files that can be shared between
multiple actions.

This should make the actions smaller and easier to read and since this is used
in several actions it should make things much easier to maintain.

In order to test this without too much unnecessary noise, this commit only
changes the android workflow - the others will be changed in a later commit
once his has been tested and works (again, this can really only be tested by
merging the PR into master).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-08 17:51:54 -08:00
Dirk Hohndel
f1ac55d322 build-system: replace repetitive GH Action code with script call
This is now much easier to maintain.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-08 17:51:54 -08:00
Michael Keller
e247d4cb3c CICD: Improve the Text for CICD Releases.
- add a note about the artifacts being added asynchronously
- add the commit message

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-08 03:14:01 -08:00
Michael Keller
ec83e157e9 Fixed android build GitHub action.
Signed-off-by: Michael Keller <github@ike.ch>
2024-01-08 20:16:46 +13:00
Michael Keller
d867701233 Update GitHub action to include signing.
Signed-off-by: Michael Keller <github@ike.ch>
2024-01-08 19:46:37 +13:00
Dirk Hohndel
5fcfe5298a remove CICD release warning
I guess the version change worked better than expected. So we should be able to
drop the warning.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-07 17:46:26 -08:00
Dirk Hohndel
7b59749bcb Add warning about changes to release announcement
This SHOULD work - but of course I can't test it until I try.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-06 10:55:24 -08:00
Dirk Hohndel
62477d8c65 Complete redesign of Subsurface version numbers
- 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>
2024-01-06 10:55:24 -08:00
Dirk Hohndel
504a9b6efe use our monotonic buildnr for the Android builds
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-06 10:55:24 -08:00
Dirk Hohndel
fa8db5f3f7 change format of nightly build release numbers
They are now the four digit version dash build nr
So major.minor.patch.commitsSinceTag-buildNr

This makes it easier to correlate the release name and a specific manually
built version.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-06 10:55:24 -08:00
Michael Keller
b3d2a8cdcb Build system: Fix Local Build Script for android.
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>
2023-12-19 00:00:54 +13:00
Michael Keller
3d902864ed CICD: Don't generate build number for pull requests.
Prevent attempts to generate a build number for pull request builds as
they will fail due to the lack of permissions on the
`subsurface/nightly-builds` repository.

Signed-off-by: Michael Keller <github@ike.ch>
2023-12-17 09:05:31 +13:00
Dirk Hohndel
0edb1c71d8 don't try to create a version on pull requests
The necessary keys to do so aren't available (and of course we don't try
to post a release on pull requests, anyway).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-15 13:48:49 -08:00
Dirk Hohndel
94c47f64ac create script to determine build number
What a pain. It turns out that github.run_number is counting the number of
times a specific workflow has been run - but that's different for different
workflows, so using that won't get us a single tag with all the corresponding
build artifacts.  And sadly I can't find a simple atomic way to increase a
GitHUb repo variable, so I came up with this somewhat convoluted dance, using
the the fact that a push to an existing brach that isn't a fast-forward will
fail.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-11 13:44:41 -08:00
Dirk Hohndel
3da943dc8a better release notes
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-10 17:23:54 -08:00
Dirk Hohndel
d76354c48c switch Android and Windows to do nightly builds
This way our ongoing releases will be in their own repo.
Also, use a nicer date format (at least I think this looks nicer).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-10 17:23:54 -08:00
Dirk Hohndel
e26dd30165 remove references to the test branch
This was useful as it helped to more quickly iterate through tests, but long term
isn't what we want.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-07 18:10:32 -08:00
Dirk Hohndel
6bbade9845 only create releases on push
Pull requests can be triggered by anyone - we should not publish code
that comes in through pull requests to either GitHub releases or
Launchpad, Copr, etc.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-07 10:10:26 -08:00
Dirk Hohndel
c609bc9446 more logical naming for the Android apk
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-07 03:27:54 -08:00
Dirk Hohndel
cc5a5a22bd add Android .apk to release from GitHub Action
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2023-12-07 01:33:08 -08:00
Dirk Hohndel
c1e7cd1428 build-system: consistently mark git directories safe
Even on platforms that don't have the new git version, yet.
And using the convoluted way to create an environment variable that should
point to our checked out tree in the GitHub Action. The more obvious ways
have resulted in failed builds for obscure reasons.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2022-05-14 10:28:56 -07:00
Dirk Hohndel
de194d56be GitHub Actions: better job names
This makes it more obvious which action actually failed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-12-17 09:17:54 -08:00
Dirk Hohndel
c5074c8af5 build-system/Android: work around missing C compiler in our build container
This of course needs to be fixed in the build container itself, but
for now this might be enough to make progress.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-12-17 09:17:54 -08:00
Dirk Hohndel
70470ffa45 build-system: configure git when running GitHub Action
In order to apply the patches for Kirigami, git insists on having
a valid user name and email.

Also, don't build the mobile app when preparing the AppImage. That
build already takes way too long and we test this in a few other
actions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-12-17 09:17:54 -08:00
Dirk Hohndel
706f44a13c build-system: update GitHub Action to use current android container
This brings the scripts and the container in use back into sync.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19 17:18:33 -08:00
Dirk Hohndel
d49647d288 GitHub Actions: stop creating CI releases
Net net this has caused more problems than it solved. Too often binaries
were missing or broken. Instead 'release equivalent' binaries are now
consistently posted to downloads/test via a Webhook.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-05-04 08:51:49 -07:00
Dirk Hohndel
f04bfd4a86 GitHub Actions: use the Qt 5.13.2 based Android build container
This is no longer created using GitHub actions (but all the necessary
information is still included in this repo). We need to be able to
shrink this container so our GitHub Action runs don't run out of disk
space.

Adjust the path where the resulting binaries are found with this build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25 13:18:41 -07:00
Dirk Hohndel
0c6f86f12d GitHub Action: use the containers we create with GitHub Actions
This closes the loop.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-05 15:51:29 -08:00
Anton Lundin
6612297022 GitHub Actions: let CI build docker images
This create a GitHub Actions workflow to build the docker images we use in our
CI workflows.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
6b080525b2 GitHub Actions: switch back to the GitHub artifacts for PRs
transfer.sh has suddenly started to time out. And for the rather
occasional need of having a binary to test from a PR, this should be
good enough.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-27 03:42:04 -07:00
Dirk Hohndel
d4ce793540 GitHub Actions: fix several errors in previous commits
I have no excuse.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-25 22:07:03 -04:00
Dirk Hohndel
2aac551089 GitHub Actions: add apt-get update before installing curl
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-25 21:49:41 -04:00
Dirk Hohndel
de1e439110 GitHub Actions: only build pushes into and PR against master
This should fix the odd double builds for people who create branches for
pull requests in the main repository.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-25 18:32:50 -07:00
Dirk Hohndel
f83505b554 GitHub Actions: push to transfer.sh for PRs, post release for pushes
This means that PRs from people using the main repo for their staging
branches will get both transfer.sh and a release.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-25 18:32:50 -07:00
Dirk Hohndel
a07c2feb95 GitHub Actions: run them on pull requests as well
I wonder if this will cause issues where the actions sometimes run
twice.  But we'll deal with that rather than dealing with not having the
tests on pull requests.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-25 14:13:15 +02:00