Commit graph

214 commits

Author SHA1 Message Date
Dirk Hohndel
cdf1865246 build-system: add libmtp for our Windows builds
This uses latest master (as that's the only one that has the explicit
Descent Mk2i support in it).

Right now, unfortunately the MXE build fails.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30 12:24:36 -07:00
Dirk Hohndel
0b13cbd81b build-system: add libmtp for Linux and macOS
Since MXE doesn't offer libmtp I'll need to add code to manually build
libmtp there.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-30 12:24:36 -07:00
Dirk Hohndel
b554b3d060 build-system: use openSUSE Tumbleweed latest
Without a distro update, Leap 15.2 appears to only give us Qt 5.12.
Since the upgrade takes forever and causes problems as it requests a senseless
'reboot' of the container, let's try using Tumbleweed instead.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-26 19:27:03 -07:00
Dirk Hohndel
7068e64e49 test: manually run gitStorageTest
This way we should see the output and hopefully be able to figure
out why that silly test keeps randomly failing.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-24 15:22:37 -07:00
Dirk Hohndel
6b7d7f9ee1 build-system: add GitHub action for openSUSE Leap 15.2
This way we test a Qt 5.15 build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-16 21:32:43 -07:00
Dirk Hohndel
e57b7659cc build-system: add GitHub action for Ubuntu 20.10
This way we test a Qt 5.14 build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-16 21:11:44 -07:00
Dirk Hohndel
967473a1cd build-system: add GitHub scanning
Enable the newly re-imagined Semmel based CodeQL scanning.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-16 14:14:05 -07:00
Dirk Hohndel
3371086d2b build-system: remove building Grantlee from AppImage build
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-10-08 12:19:39 -07:00
Dirk Hohndel
77781b936a build-system/packaging: add bluez dependency for Coverity build
I had missed this one in commit d73e0a0fb4
("build-system/packaging: add bluez dependency for Linux builds").

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-20 18:17:20 -07:00
Dirk Hohndel
d73e0a0fb4 build-system/packaging: add bluez dependency for Linux builds
I hope this captures all the variations

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-09-19 19:26:56 -07:00
Paul Buxton
68b651e494 build-system/mxe: use the new container image
[Dirk Hohndel: switched back to our docker hub repo]

Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-06-25 11:00:51 -07:00
Paul Buxton
a753845d5a build-system/MXE: build with more up to date MXE tools.
- use hidapi grantlee and mdbtools from MXE
- update MXE version to use QT 5.15, and pull in libzstd and  CMake 3.17.3
- fix linking of winmm on windows build with new mxe
- add some instructions on building the container
- add some new dependancies from QT 5.15 to the packaging
- add a patch to MXE to Build qtconnectivity with native-win32-bluetooth

[Dirk Hohndel: small refactor]

Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-06-25 11:00:51 -07: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
ff0438a3fd Github Actions: don't bundle mac app
There's no point in doing that since the app directory this creates is broken
on older macOS versions, anyway (and we create a working DMG through a
webhook).

Additionally, lately this has started to fail on GitHub, so let's just rip this
out.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-30 14:06:48 -07:00
Dirk Hohndel
0c0d65e2cb GitHub Actions: we can't have an action with no on: clause
So in order to disable an action, I'll just use an unused
repository_dispatch.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-27 09:34:07 -07:00
Dirk Hohndel
eccbf01a22 GitHub Actions: disable Android container builds on GitHub
Building this locally and squashing layers creates a MUCH smaller image.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25 13:18:41 -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
162b7a8a3d testing/git-storage: don't override test accounts
We now have a much better way of dealing with the issue of colliding
tests inside the test.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-15 07:58:10 -07:00
Dirk Hohndel
039ed38067 GitHub Actions: add pkg-config to iOS build
Our builds fail because we are missing pkg-config.
I'm not quite sure if this is triggered by a new dependency or if pkg-config
used to be there and now isn't. Either way, this should hopefully fix things.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-04 11:09:17 -07:00
Dirk Hohndel
639be7149f GitHub Actions/iOS: shift to using a pre-packaged Qt installation
Since the official Qt binaries can no longer be installed without disclosing
credentials (well, sure, that could be done through secrets), I decided that
we should go back to packaging just the part of the iOS Qt SDK that we need.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-02-13 13:34:01 -08:00
Dirk Hohndel
b3f0fd3e18 build-system/coverity: it seems silly to need both wget and curl
But hopefully with this we'll get the Coverity scans back.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-02-10 14:22:22 -08:00
Dirk Hohndel
550ec34101 GitHub Actions: convert Coverity build to using container as well
Same build failures as we had with the other Bionic based build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-02-05 10:17:44 -08:00
Dirk Hohndel
3ad1a5c7c7 GitHub Actions: use the official Ubuntu 18.04 container
Something is seriously wrong with the default Ubuntu 18.04 environment
on GitHub Actions. C++ builds fail with very confusing messages about
C++11 support.

Switching to building in a Ubuntu 18.04 based container - that seems
redundant, but it fixes the problem.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-02-03 17:14:28 -08:00
Dirk Hohndel
d54c26e627 GitHub Actions: remove outdated libdivecomputer header files
We never noticed this before, but during the build of the Trusty Qt5.12
container itself we create libdivecomputer include files and we ship them with
the container. And as the recent build failures after an incompatible API
change in libdivecomputer show, those include files are apparently used in this
build, not the ones that are newly created during the build.

Obviously the build container needs to be fixed, but as a quick workaround,
this should do.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-28 11:21:10 -08:00
Dirk Hohndel
ab71f5daca GitHub Actions: change passwords to be hard coded
As much as I hate having passwords exposed through the source code,
since GitHub wisely prevents reading secrets in pull requests, there
isn't really a sane way to have this use confidential credentials.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-04 02:47:45 +09:00
Dirk Hohndel
30b123bd44 GitHub Actions: execute the Ubuntu 19.10 steps in yaml
This way we can also easily name them as we did for the other two tested
platforms.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-01 15:11:20 -08:00
Dirk Hohndel
5584574062 GitHub Actions: better grouping of test steps
This is a bit more convoluted to do inside of the Ubuntu 19.10 container, but
at least for Ubuntu 14.04 and for Mac this will be an improvement.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-01 15:11:20 -08:00
Dirk Hohndel
06de2a91ce GitHub Actions: use custom logins for cloud tests
This should reduce the risk of stepping on top of each other.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-01 15:11:20 -08:00
Dirk Hohndel
932031bf4c GitHub Actions: better names for the Linux builds
This makes it easier to figure out which build is doing what.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-30 17:43:31 -08:00
Dirk Hohndel
2f5d37e86e GitHub Actions: add Ubuntu 19.10 / Qt 5.12 build
And run tests for desktop and mobile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-30 17:43:31 -08:00
Dirk Hohndel
f788311b29 GitHub Actions: run the tests on Mac and Ubuntu 18.04/Qt 5.9 desktop
We lost running the tests when migrating to GitHub Actions...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-30 17:41:07 -08:00
Dirk Hohndel
c2ccbe1f63 GitHub Actions: install missing Homebrew packages to run tests
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-30 17:34:26 -08:00
Dirk Hohndel
84394adb11 AppImage: don't bundle our libdbus
This appears to prevent Bluetooth from working.

Fixes: #2370

Suggested-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-07 10:21:05 -08:00
Dirk Hohndel
f9910caa35 GitHub Actions: fix typo extracting the branch name
Also deal more gracefully with other potential bugs so that
we don't add an spurious '-' at the end if the branch is empty
for some reason (as that makes the image name invalid).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-05 15:51:29 -08:00
Dirk Hohndel
5e05a18395 GitHub Actions: ensure container names are all lower case
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-05 15:51:29 -08:00
Dirk Hohndel
c2d138b0f9 GitHub Actions: clarify comment
Really, this is just here to re-trigger that container build now
that things are merged and stage 2 will actually work...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-12-05 15:51:29 -08: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
Dirk Hohndel
467cae0651 GitHub Actions: add branch name to docker image name
Unless we're on master.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
9147e83b8c GitHub Actions: better names for the docker workflows
This way it's much easier to see on the GitHub website which one is which.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
5446e9db83 GitHub Actions: set new version numbers for the docker images
These are of course arbitrary. The Android container image for some
reason based its version number on the Qt version. Which may or may
not be a good idea. The other two had 0.x version numbers, so let's
move them to 1.0 for the first release that gets pushed to the
subsurface account on docker hub.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
13db505866 GitHub Actions: build stage 2 of MXE image for correct branch
When triggered by a push event, the checkout action checks out the correct branch.
But without this change, the stage 2 action would always run on master.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
c2b2f13119 GitHub Actions: trigger docker builds on more paths
Not only a change to the docker file, also changes to the yaml files
should trigger rebuilds.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
95a2a670e3 GitHub Actions: push Linux and Android containers to docker hub
For now simply using the existing version numbers.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
8c64140220 GitHub Actions: add two stage MXE container build
Based on ideas from Anton - both the basic building of containers in the first
place as well as the workaround for the 6h build limit.

Because GitHub Actions are limited to 6 hours we split the creation of the MXE
container into two steps and push the intermediary container after stage 1 to
docker hub. Right now each of the steps takes about 3.5 hours, so hopefully
even with changes in the future this will continue to work.

This commit also introduces use of docker hub instead of GitHub's own registry
(since strangely right now GitHub actions cannot run containers from GitHub's
private registry).

In order for this to work, we need to have the docker credentials in secrets in
GitHub. As a result, only people who can create branches in our repository can
easily test changes to the container images. Others can modify the code to use
a different docker hub account and provide those secrets in their own GitHub
account. Not ideal, but of course we cannot allow every pull request to
potentially overwrite docker images in our "official" docker hub account.

Suggested-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -08:00
Dirk Hohndel
311eb9a2e3 GitHub Actions: split the container build action into two
And remove the Windows/MXE one that doesn't work because of the 6h time limit.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-28 11:12:59 -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
bde4537320 GitHub Actions: don't add macOS artifacts to release
We now get a working macOS DMG for each CICD release via the webhook -
and the GitHub built .app.zip only worked on the latest macOS and was
near-unusable there.

We still make it available as an artifact of that macIS GitHub action in
case there is some value, but we no longer push it into the GitHub
release artifacts.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-22 08:57:47 -08:00
Dirk Hohndel
e9a9bc1282 GitHub actions: fix macOS artifact upload
Previously this created a bogus Subsurface.app.zip.zip file and then
failed to upload it to the release.

The upload / download pair of default actions is happier with just the folder.
And then the creation of the zip file needs the '-r' switch. Oops.
Finally, the pull-request specific uploads as build artifact are completely
redundant since we already do this to move the data from the macOS build to the
container that runs our own publish action in the first place.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-11-18 11:16:35 -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
13a1154650 GitHub Actions: one more set of typos fixed
I am at a loss for words. Especially as we didn't need those quotes in
the first place. What was I thinking?

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-26 04:39:32 -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
Anton Lundin
d99b889c62 GitHub Actions: Add automatic coverity scan
This adds a automatic coverity scan build based on linux-bionic-5.9.yml

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2019-10-23 07:20:57 -04:00
Dirk Hohndel
39203a7ebd GitHub Action: add iOS build
This is incredibly brute force, downloading a 3+GB installer and
installing all of the Qt/iOS binaries.

This first attempt is mainly to get an idea how long this will take and
if this will fit within the size constraints of the build VM.  This
commit doesn't even try to build, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-19 08:55:31 -04:00
Dirk Hohndel
0e11ef39d0 GitHub Actions: add Linux Bionic / Qt 5.9 build
No artifacts from this build are preserved, this is just to make sure
that we can still build the desktop version against Qt 5.9.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-18 20:46:01 -07:00
Dirk Hohndel
d608f027d1 GitHub Actions: add Android build
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-18 20:46:01 -07:00
Dirk Hohndel
6b334ac7d9 GitHub Actions: improve naming and location of files
Just to make things a little more consistent.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-18 20:46:01 -07:00
Dirk Hohndel
aff54e17e5 GitHub Actions: post releases
This so far just works on push and hopefullt pull requests, not for tags
and therefore actual releases.

In order not to conflict with the binaries from Travis, I changed the
name to "ci-release" instead of "continuous".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-18 20:46:01 -07:00
Dirk Hohndel
f099b22820 GitHub Actions: build Windows binaries
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-18 20:46:01 -07:00
Dirk Hohndel
ef3d67be08 GitHub Actions: add Linux Qt 5.12 container build
The AppImage works - I just need to figure out how to post releases. For now
it'a available on the Actions page as Artifact.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-16 10:57:32 -07:00
Dirk Hohndel
754fffc795 GitHub Actions: first CI/CD build for Mac based on GitHub Actions
This feature is in beta right now and might change without notice, but instead
of dealing with the broken Travis Mac builds, this does seem progress.

The build artifact seems to work, but it's a bit more painful to get to. Go to
https://github.com/Subsurface-divelog/subsurface/actions and click on the
corresponding run - it's then in the top right corner under Artifacts. The one
oddity is that after unzipping the file you need to manually make
Contents/MacOS/Subsurface executable.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14 21:00:10 -07:00