Skip to content

GitHub Actionsλ︎

GitHub Actions are pre-defined tasks that can be used within a GitHub Workflow, triggered by events such as committing to a branch or pull request.

GitHub Actions Marketplace contains a wide range of actions that can be used to quickly create a workflow.

Use major version only

Use the major version of a GitHub action within a GitHub workflows to minimise the maintenance of action versions in workflow configuration. e.g. if the latest version is v5.2.1, then use version v5 to use the latest version available within that major version.

Authenticationλ︎

GitHub actions have read access to repositories, allowing them to checkout code and configuration. For more permissions the GitHub Action requires an authorisation token.

GitHub automatically creates a token that GitHub actions can use to make an authenticated API request, scoped to the current repository.

Use automatically created token
      - uses: actions/action-name@v2
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

For customised authentication or access to a different GitHub repository, create a developer token and save it as a user or organisation secret.

GitHub - Automatic token authentication

Common GitHub Actionsλ︎

Action Description
Checkout Checkout repository to enable workflow to access
Cache cache dependencies and build outputs to improve workflow execution time
Changelog Enforcer checks the CHANGELOG.md file has been updated for a pull request
MegaLinter verify code and configuration consistency
Setup reviewdog Setup reviewdog post review comments to pull requests, typically used with lint tools
Clojure lint clj-kondo lint with reviewdog comments added inline to pull request
Setup java jdk setup up Java run-time environment (specify version, distribution, etc)
Setup clojure Setup Clojure environment and common Clojure tools for quality (clj-kondo, cljstyle, unit testing, etc)
Setup go sets up a Go language environment
Setup node setup a version of the Node.js environment, caching npm/yarn /pnpm dependencies
Setup python Provides python or PyPy, optionally cache pip dependencies
GitHub Pages Deploy deploy to GitHub pages, including cross-repository deployments

Actions to investigate