There are tools like the already-mentioned act
, but they are not perfect.
You are not alone with this issue. Similar problems are:
- how to test Jenkins builds locally
- how to test Circle CI builds locally
- how to test XXXX builds locally
And my solution for these problems is:
- avoid functionalities provided by your CI tools (GitHub Actions, Gitlab CI, etc)
- write as much as possible in CI-agnostic way (BASH scripts, PowerShell scripts, Gradle scripts, NPM scripts, Dockerfiles, Ansible scripts – anything you know)
- invoke those scripts from your CI tool. In GitHub actions:
run: your command to run
Update 2022; Bit-bucket’s Pipelines support running locally, which means 100% free use-hours, with the cost of buying own PC/Mac (if you want permanent server).