Run Github Actions locally using act2 May 2022
I recently worked on refactoring the CLI for Microsoft 365 Login GitHub Action and one of the issues I came across during the development was being able to get fast feedback on the changes I had made.
The only way I could test the changes was to commit my changes, push them to GitHub and manually trigger the workflow.
nektos\act, is a command line tool that helps emulate the GitHub Actions environment locally using Docker,enabling you to trigger workflows without having to push to GitHub first.
act relies on Docker, you will need this installed before installing it. You can install
act using package managers such as
chocolatey, or via an installer which you can find on the latest releasepage.
Once installed, you can trigger a workflow by executing
act at the command line.
To test the Login action locally, I created the following
test.yml file in the
The workflow uses the
workflow_dispatch event which is a manual trigger, it defines a single job that runs on the latest version of Ubuntu and has two steps, the first to checkout the local repository making the files available to the workflow runner and the second which executes the local version of our action denoted by
uses: ./. The login step uses two GitHub Secrets which as passed as values into the
To execute this workflow locally, we run…
act workflow_dispatch -s ADMIN_USERNAME=username -s ADMIN_PASSWORD=password
workflow_dispatch is passed as the tigger type (default is
push) and pass two values as GitHub Secrets using the
As we can see, we can now easily run our actions locally using
act, and we can benefit from a much faster feedback loop 🚀