act icon indicating copy to clipboard operation
act copied to clipboard

Is it possible to validate workflows with act, without running them?

Open mm-chia opened this issue 9 months ago • 5 comments

Act version

act version 0.2.75

Feature description

Hi there!

First of all, congrats for putting together this awesome tool!

I would like to be able to validate the workflows (for syntax errors) in CI/CD. Would act allow this? I checked act --help but I could not see any flag for validation or such.

thanks!!

mm-chia avatar Mar 27 '25 06:03 mm-chia

I would like to be able to validate the workflows (for syntax errors) in CI/CD. Would act allow this?

You can use dry run mode of act or use https://github.com/rhysd/actionlint

panekj avatar Mar 27 '25 09:03 panekj

I think --list is better, than dryrun due to open bugs and concerning test coverage in act.

If you mean the basic schema validation I added last year.

ChristopherHX avatar Mar 27 '25 12:03 ChristopherHX

Thanks for your input!

I've tried act --list but the command lists the workflows, without doing any validation on them (or so it seems). I broke the yaml format, I put wrong values for events.. but act is still happy with it :) act --dryrun also ignores any issues with event names, and other things, it doesn't seem to be doing much validation either - it happily runs with broken schema :)

I need a tool that will validate the github workflows for syntax/schema, so we can catch any issues at pull request time. Do you know if any official tool from Github, for this purpose? I've spent quite a bit of time searching, but I couldn't find one..

I did try actionlint, but it has some issues (false positives), so I can't really use it as it is now.. Their repository has over 100 issues opened, but I'm not sure how much activity on it .. I also tried github-workflow-validator, but this one has a long standing issue with glob validation, so that's also a deal breaker :(

mm-chia avatar Mar 27 '25 15:03 mm-chia

I broke the yaml format, I put wrong values for events.. but act is still happy with it :)

To comply with the GitHub Action spec we cannot use the strict schema

  • Our source of the schema (The official GitHub Actions Extension) has errors and would reject valid workflows in strict mode re https://github.com/nektos/act/pull/2524

If the previous v0.2.74 would report your change as error before execution, then I could create an --validate --strict flag that might do just what you want using the disabled strict validation

ChristopherHX avatar Mar 27 '25 17:03 ChristopherHX

Yes, that command will probably do the trick, if implemented. Thanks for the great feedback!

mm-chia avatar Mar 28 '25 06:03 mm-chia