Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
tag

GitHub Action

Rhysd actionlint

v0.1.2

Rhysd actionlint

tag

Rhysd actionlint

Check your workflows for common errors, like not declaring outputs before using them, bash script errors, and more

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Rhysd actionlint

uses: devops-actions/[email protected]

Learn more about this action in devops-actions/actionlint

Choose a version

OpenSSF Scorecard

actionlint

Action wrapper for rhysd/actionlint to make using it easier.

This action will run your repository through actionlint and detect common errors like:

  • Calling an output or needs object that has not been defined
  • Run shell check on all run commands
  • And more, check the actionlint documentation for more information

Results

If there are no errors from actionlint, this action will succeed. If there are errors, this action will fail and output the errors in the logs.

If running in a Pull Request context, then the action will also annotate the changed files with the errors. This is useful to see what errors were introduced by the Pull Request. Note: this only works if you include the pull-requests: write permission in your workflow file.

Usage:

jobs:
  run-actionlint:
    runs-on: ubuntu-latest
    permissions:
      # needed for the checkout action
      contents: read
      # needed to annotate the files in a pull request with comments
      pull-requests: write
    steps: 
    # checkout the source code to analyze
    - uses: actions/checkout@v3 # v3

    # run the actionlinter, will fail on errors
    - uses: devops-actions/actionlint@c0ee017f8abef55d843a647cd737b87a1976eb69 #v0.1.1

Usage with results file:

If you want to pick up the results file and use its contents somewhere else, then use it as follows:

on:
  push: 

  workflow_dispatch:

permissions:
  contents: read
  pull-requests: write

jobs:
  job-1:
    runs-on: ubuntu-latest
    steps:       
    - uses: actions/checkout@v3
    - uses: devops-actions/actionlint@c0ee017f8abef55d843a647cd737b87a1976eb69 #v0.1.1
      continue-on-error: true
      id: action-lint
    
    - uses: actions/upload-artifact@v3
      with:
        name: actionlint-results
        path: ${{ steps.action-lint.outputs.results-file }}

Errors

No project was found in any parent directories

Error message: no project was found in any parent directories of ".". check workflows directory is put correctly in your Git repository Solution: Add a uses: actions/checkout@v3 # v3 to your workflow file, so the repository can be analyzed

Configuration

If you want to hide certain warnings from shellcheck, then you can use the directives as shown in their docs here:

# shellcheck disable=code