Skip to content

Conversation

@karlatec
Copy link
Contributor

@karlatec karlatec commented Jan 15, 2026

Series of changes improving running workflows locally using gh act.

Explanations here to avoid going into commit messages:

  • Add a Dockerfile to allow users quickly creating local version of runner images with Github CLI tool installed. Default act images don't have it in "slim" images (and we don't want to use "full" images as they are 30+GB in size)
  • Add nodejs to list of packages installed by CI Joe into Qcow2 images. Nodejs is needed by some of the actions we use. It doesn't take much space, so won't bloat the images very much.
  • Fix exporting artifact_id in common tests workflow - there was an issue with quoting which gh act JSON parser was complaining about. Interestingly - this worked in Github which might suggest different JSON parsers?
  • Don't use github.token to avoid downloading Qcow2 image on each run when using gh act
  • CI Joe image upgrade was aimed at using configuration files override as described here. Ultimately this was not needed as I've found different way to solve disk.path problem of .toml file, but decided to keep the version upgrade anyway.

@karlatec karlatec marked this pull request as draft January 15, 2026 10:51
@karlatec
Copy link
Contributor Author

Still in progress, one more thing left to do.

@karlatec karlatec force-pushed the karlatec/ghact branch 2 times, most recently from 21c0641 to 186770a Compare January 27, 2026 10:57
@karlatec karlatec marked this pull request as ready for review January 27, 2026 11:10
@glimchb
Copy link
Contributor

glimchb commented Jan 27, 2026

maybe split in multiple PRs? like cijoe version update separate ?

@karlatec
Copy link
Contributor Author

maybe split in multiple PRs? like cijoe version update separate ?

Sure; doesn't really make much difference to me.

Add a simple Dockerfile to enable users building a local
image which includes Github CLI tool. With this image
more workflows can be run locally without the need to
temporarily modify the workflows just to install "gh".

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
Installing nodejs into the images fixes running Github
Action workflows locally when using "gh act". Specifically:
the parts of the workflows where "container:" is used with
Fedora and Freebsd Docker images. Without nodejs available
some of the actions (for example - actions/download-artifacts)
will not work.

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
The version with outer double quotes and single inner quotes
works in Github using github-hosted runners, but not locally
using "gh act". "artifact_id" was actually getting exported
as:
'artifact_id={'\''fedora_43'\'':20878294770,'\''freebsd_14'\'':20878294770}'

Gh act JSON parser complains about single quotes and escape
signs, resulting in expressions being evaluated to NIL.

Use double quote for keys in JSON, which fixes the issue for gh act.

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
The condition was wrong resulting in shutdown being
attepmted for container-based workload in local (gh act)
environment. We want to do this only on github-hosted
runners and vm-based workloads.

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
Clear out github.token in case workflow is run locally using
"gh act". Using the token results in the artifact being
downloaded from Github __every time__ instead of using
artifacts cached locally by act (and that's even if offline
mode or artifact server path are used).

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
Use a dynamic value for disk.path based on a variable.
The path will be different when running the job using
Github-hosted runners and locally using "gh act".

Signed-off-by: Karol Latecki <karol.latecki@nutanix.com>
@karlatec
Copy link
Contributor Author

@glimchb removed this particular commit from the PR

@karlatec karlatec requested a review from glimchb January 28, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants