rhysd / actionlint

:octocat: Static checker for GitHub Actions workflow files
https://rhysd.github.io/actionlint/
MIT License
2.83k stars 158 forks source link

Unable to ignore errors #481

Open pociej opened 3 days ago

pociej commented 3 days ago

Hi I observed strange experience Im unable to understand.

here is me config

self-hosted-runner:
  labels:
    - aws-linux-small
    - aws-linux-medium
paths:
  .github/workflows/**/*.yaml:
    ignore:
      - 'shellcheck reported issue in this script: SC2086:.+'
      - 'shellcheck reported issue in this script: SC2046:.+'
      - 'shellcheck reported issue in this script: SC2155:.+'
      - 'shellcheck reported issue in this script: SC2044:.+'

It was working for me perfectly fine and stopped because of reasons i dont understand. Im now hited by errors listed on ignore list

like that

.github/workflows/release.yaml:429:7: shellcheck reported issue in this script: SC2086:info:2:29: Double quote to prevent globbing and word splitting [shellcheck]
    |
429 |       run: |
    |       ^~~~
.github/workflows/test_e2e_devnet.yaml:57:9: shellcheck reported issue in this script: SC2044:warning:1:17: For loops over find output are fragile. Use find -exec or a while read loop [shellcheck]
   |
[57](https://github.com/vlayer-xyz/vlayer/actions/runs/11928877667/job/33246589658#step:4:58) |         run: |
   |         ^~~~

Im sure the config file is properly loaded as self-hosted-runners are there. Im running actionlint as documented :

jobs:
  actionlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Download actionlint
        id: get_actionlint
        run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) 
        shell: bash
      - name: Check workflow files
        run: ${{ steps.get_actionlint.outputs.executable }}
        shell: bash

any idea of what could be the reason? Thx in advance.

rhysd commented 2 days ago

Can you provide your workflow input (smaller is better) which can reproduce this issue?

ahmedelgabri commented 2 days ago

@pociej make sure you are targeting the correct files, I had a problem yesterday with this too, then I realized I had to change the glob to *.{yaml,yml}

rhysd commented 2 days ago

I tried to reproduce it but I could not.

.github/actionlint.yaml:

paths:
  .github/workflows/**/*.yaml:
    ignore:
      - 'shellcheck reported issue in this script: SC2086:.+'

.github/workflows/test.yaml:

on: push

jobs:
  tests:
    runs-on: ubuntu-latest
    steps:
      # This causes SC2086
      - run: echo $FOO

And I ran:

actionlint

The command did not report any error. When I removed actionlint.yaml, it reported an error. So the command seems to work as intended.

Can you check actionlint command is the latest by actionlint -version?

chrisponton commented 1 day ago

This is happening to me too.

.github/actionlint.yml:

paths:
  .github/workflows/**/*.yml:
    ignore:
      - 'the runner of ".+" action is too old to run on GitHub Actions'

.github/workflows/simple.yml:

on:
  pull_request:
jobs:
  checkout:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

Run:

actionlint

Output:

simple.yml:7:15: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue [action]
   |
7 |       - uses: actions/checkout@v3
   |               ^~~~~~~~~~~~~~~~~~~

Version:

actionlint -version
1.7.4
installed by building from source
built with go1.23.2 compiler for darwin/arm64

Note: If I run actionlint -ignore 'the runner of ".+" action is too old to run on GitHub Actions.' it is ignored.