opened 11:20AM - 22 Mar 20 UTC
area: ci
improves: tech debt
So I've been playing with this in #382, and I'm impressed.
Motivations:
-… Better build times (especially for macOS and Windows), see #370.
- Integrated into GitHub, better UX in general
- Easier/cleaner config (especially with regards to multi-platform support)
- Seems more reliable
- Not a high bar to beat
- Travis has had outages, build backlogs, builds stalling
- I've been getting "An error occurred while generating the build script." frequently recently (the last two days) for macOS builds.
- It makes us able to finally get rid of Appveyor and unify our CI process
- It allows for more advanced automation, such as automating creating releases with changelog and everything.
I'm seriously tired of mucking with Travis and Appveyor, especially due to the long build times, so pretty excited about getting this done, so we can scrap them.
### Subtasks before ready to completely migrate to GitHub Actions:
- [x] Upload build artifacts on every build
- [ ] Upload releases to GitHub releases
- Can even automate the creating of the release, including generating the release description & changelog. See: https://github.com/actions/upload-release-asset
- [x] Add caching for `aw-server-rust/target`
- [x] Build aw-server-rust in debug mode on non-releases (for faster builds), see https://github.com/ActivityWatch/aw-server-rust/pull/100
- [ ] Test builds on all platforms
- [x] Linux
- ~~Problems found, see comments.~~
- Fixed in #604
- [ ] Windows
- [x] macOS (done in https://github.com/ActivityWatch/activitywatch/issues/388#issuecomment-751726505)
- [x] Problems anticipated on versions of macOS older than the version used in CI, probably need to do some xcode-select magic (done in https://github.com/ActivityWatch/activitywatch/pull/544/commits/9f0f7c7af389cd878889b60e9c9b00c1bb878d7f)
- [x] Stumbled into some issues... Might work now, but should check with otool to be sure: https://stackoverflow.com/questions/17143373/determine-minimum-osx-version-a-binary-was-compiled-for (done in https://github.com/ActivityWatch/activitywatch/pull/544#issuecomment-751801675)
### Progress on moving module repos to GitHub Actions:
- [x] aw-server (https://github.com/ActivityWatch/aw-server/pull/73)
- [x] aw-server-rust
- [x] aw-webui
- [x] aw-qt (https://github.com/ActivityWatch/aw-qt/commit/20261da3f38731f30726b15531943bc9e5332de1)
- [x] aw-core (https://github.com/ActivityWatch/aw-core/pull/89)
- [x] aw-client (https://github.com/ActivityWatch/aw-client/pull/51)
- [x] aw-watcher-afk (https://github.com/ActivityWatch/aw-watcher-afk/commit/4b9eea5e1bd71e90f07bee159ae17ab03615a8c9)
- [x] aw-watcher-web (https://github.com/ActivityWatch/aw-watcher-web/pull/63)
- [x] aw-watcher-window
- [x] activitywatch.github.io (https://github.com/ActivityWatch/activitywatch.github.io/issues/13)
### An overview of migration progress can also be seen on the [CI overview page](https://activitywatch.net/ci/)