back to xoc3.io
2021-05-23 - github actions
i was trying to add a continuous integration pipeline to my ttrack project. previously i was using travis-ci for my concards repo. as i started implementing travis-ci, i ran into a problem related to how travis-ci currently has both a `.com` and `.org` url. after trying to diagnose the issue for a bit, i ended up looking into github actions and deciding to switch to that instead. i like the file syntax for github actions more, it's integrated into github, and it's also generally faster than travis-ci.
for both my concards and ttrack repos, i set up a build and release action. both repos have pretty much identical actions. here are links to those actions for each repo:
concards github workflow
ttrack github workflow
the build action
- triggers on any non-tag push
- builds the go project
- runs tests with coverage
- sends coverage to coveralls.io
the release action
- triggers on creating a release through the github ui
- builds the go project for multiple architectures using gox
- creates a checksum file that has checksums for each executable
- uploads the checksum file and various executables to the github release page
in addition, i only allow merging to the main branch via pull requests. pull requests will fail if the build fails or the test coverage is less than 80%.
all in all, i'm proud of my new setup. i was able to switch to github actions and make improvements to my build system in the process.