qgroundcontrol
qgroundcontrol copied to clipboard
Remaining Github Actions based CI work
First lets start with the current state of affairs:
- There is no longer fully automated support for uploading any builds whether stable or daily to S3 and/or Google Play. This all fell apart when Travis crapped out.
- Daily builds which are referenced by the docs are out of date my multiple months
- The Google Play daily build in the store hasn't been updated in close to a year
- GitHub Actions have been created for Linux/Mac/Windows which verify build and test on all pull requests
- Android GitHub Actions only compiles to APK as a first step towards switching to Android App Bundles
- Android build has been updated for Qt 5.15 as well as new scheme for daily build version number generation as step towards end goal of app bundle
Remaining work:
- [x] Although the GitHub Actions are setup to upload to S3 the action for this is currently disabled. The reason is that it doesn't work. Someone with both S3 and GitHub knowledge/access will need to figure out how to make this work.
- [ ] The Android build needs to be finished up with respect to generating an Android App Bundle with both 32 and 64 bit versions in it. It close, but not fully there. It fails on obscure Gradle errors.
- [ ] Run GitHub Actions when a new release is created and upload installers to S3
There are aws actions for S3 too: https://github.com/aws-actions/configure-aws-credentials
Maybe they make things easier or contain a good tutorial one can follow.
There are aws actions for S3 too
Yup. Under the covers that action does exactly what the current scripts do as far as I can tell. The problem is S3 upload just doesn't work even from the command line on a desktop machine. Something wrong with credentials on the S3 settings as far as I can tell.
Sorry, I'm not super familiar with QGC and iOS. Do we need a workflow for the iOS build too?
Sorry, I'm not super familiar with QGC and iOS. Do we need a workflow for the iOS build too?
Yes we do. We've in fact never had iOS in CI.
How about changing the daily build documentation? Users can download it from github without having to store their daily builds in S3.
I just stumbled on this trying to download the latest versions from https://docs.qgroundcontrol.com/master/en/releases/daily_builds.html For Windows I get a version from 25.09.2021 and for Linux there's just a 403 forbidden.
Users can download it from github without having to store their daily builds in S3.
As far as I know there are no daily builds stored on GitHub so if a user is not building locally (like e.g. me) he can't get the latest version. Please tell me if I'm wrong.
@MaEtUgR you can download the artifacts out of any build, that's how I'm getting my daily builds right now, go to this link https://github.com/mavlink/qgroundcontrol/actions and look for the "Windows Release" tab, and click on the latest successful build you will be able to download the artifacts
I just stumbled on this trying to download the latest versions from https://docs.qgroundcontrol.com/master/en/releases/daily_builds.html For Windows I get a version from 25.09.2021 and for Linux there's just a 403 forbidden.
Hmm, there must be some sort of ACLs problem. I just looked on S3 itself and all the build up there are from yesterday.
Ci isn't putting them up where they used to be. So the links in the docs are point to old stuff. The new links look like this: https://qgroundcontrol.s3.us-west-2.amazonaws.com/master/QGroundControl.AppImage
All the OS versions except for Android up are under that structure. I'll figure out whether CI needs to change or docs need to change.
What's the new structure @DonLakeFlyer? I can update the docs
@mrpollo I just looked and it's CI that should be fixed to push to the right place. The #10021 issue has details. Should be a trivial GitHub Actions script change(s). If you have time could you tweak? I probably can't get to it for a couple days. Heading out the door now.
In the linux action the problem is here: https://github.com/mavlink/qgroundcontrol/blob/master/.github/workflows/linux_release.yml#L100
There is a nice service that creates links to artifacts. E.g.:
https://nightly.link/mavlink/qgroundcontrol/workflows/linux_release/master/QGroundControl.AppImage
Thank you! I can confirm. CI uploads to: https://s3-us-west-2.amazonaws.com/qgroundcontrol/master/QGroundControl-installer.exe And that build works for me and is up to date so either we update the docs or change the upload to what was presumably the original URL.
FYI I made a pr for the latter option: https://github.com/mavlink/qgroundcontrol/pull/10023
Thanks @MaEtUgR I just merged that PR, I'm waiting for the build on master to finish to verify the builds are uploaded.
@DonLakeFlyer something also missing is uploading stable release artifacts to S3, right now CI is configured to run on push & pull request events only, we can in theory use the "release" event, and get CI to build all of our releases
I made a new PR with changes to the workflows to also listen to the "release" event and publish it to S3 https://github.com/mavlink/qgroundcontrol/pull/10025
THe Android build itself works as expected, but there seems to be a error in getting the compiled program packaged as apk.
If the ANDROID_KEYSTORE_PASSWORD is not set via CI Secret in https://github.com/mavlink/qgroundcontrol/blob/master/QGCPostLinkInstaller.pri#L60, and it looks like this is not somehow not set, the apk generator/apkdeploy generator is not used.
I have fixed the Android CI for 32bit and 64bit with pr #10380 by switching to an older ndk. This is however not tested on real android systems.