id = "act" name = "act" homepage = "https://github.com/nektos/act" description = "Run your GitHub Actions locally!" executables = ["act"] [dotfiles] # https://nektosact.com/usage/index.html#configuration-file and cmd/root.go # configLocations(): ".actrc as per the XDG spec, .actrc in HOME directory, # .actrc in invocation directory, cli arguments". act uses adrg/xdg, whose # config home is ~/.config on Linux, ~/Library/Application Support on macOS # and %LOCALAPPDATA% on Windows. paths = [ "~/.actrc", "~/.config/act/actrc", "~/Library/Application Support/act/actrc", "%LOCALAPPDATA%/act/actrc", ] # Pulled action sources and the built-in cache server's store. cmd/dir.go sets # CacheHomeDir to $XDG_CACHE_HOME, else $HOME/.cache, with no per-OS branch — # the XDG cache home on macOS and Windows too, which is [xdgCache]. Not # [cacheHome]: that is ~/Library/Caches on macOS and %LOCALAPPDATA% on Windows, # neither of which act ever writes. So unlike the config file above, these two # have no separate Windows or macOS spelling. exclude = [ "[xdgCache]/act/", "[xdgCache]/actcache/", ] # act reads secrets only from --secret / --secret-file, which point at a file # inside the repository being run; there is no credential file under $HOME. secret = [] # Flags are re-read from .actrc on every invocation. side_effect = false # Both flags name something that exists on this machine only: the local # container engine's socket, and a directory the artifact server writes to. # The user put both there by hand, and both are part of how this machine is # set up, so they are worth keeping to rebuild it: backup, never handed to # another machine. [[dotfiles.machine_lines]] file = [ "~/.actrc", "~/.config/act/actrc", "~/Library/Application Support/act/actrc", "%LOCALAPPDATA%/act/actrc", ] match = { prefix = ["--container-daemon-socket", "--artifact-server-path"] } scope = "backup" [commands] format = 1 label = "Run GitHub Actions locally" description = "Run workflows from .github/workflows in containers, or list and graph them. Event-name positional, runner image tuning and Docker socket options are left out." quality = "ai-draft" base = "fig:act" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/act.ts" license = "MIT" [[commands.field]] id = "workflows" label = "Workflow file or directory" type = "path" option = ["--workflows", "-W"] path = { kind = "any", role = "input", must_exist = true } sources = ["fig"] [[commands.field]] id = "job" label = "Run only this job" type = "string" option = ["--job", "-j"] sources = ["fig"] [[commands.field]] id = "eventpath" label = "Event JSON file" type = "path" option = ["--eventpath", "-e"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.field]] id = "list" label = "List workflows" type = "boolean" option = ["--list", "-l"] sources = ["fig"] [[commands.field]] id = "graph" label = "Draw workflow graph" type = "boolean" option = ["--graph", "-g"] sources = ["fig"] [[commands.field]] id = "dryrun" label = "Dry run" type = "boolean" option = ["--dryrun", "-n"] sources = ["fig"] [[commands.field]] id = "secret" label = "Secrets" description = "KEY=value, or KEY alone to be prompted. Values typed here end up in shell history; prefer a secret file." type = "string" option = ["--secret", "-s"] multiple = true sources = ["fig"] [[commands.field]] id = "secret_file" label = "Secret file" type = "path" option = ["--secret-file"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.field]] id = "env" label = "Environment variables" description = "KEY=value, or KEY alone." type = "string" option = ["--env"] multiple = true sources = ["fig"] [[commands.field]] id = "env_file" label = "Environment file" type = "path" option = ["--env-file"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.field]] id = "platform" label = "Platform image mappings" description = "Example: ubuntu-latest=catthehacker/ubuntu:act-latest" type = "string" option = ["--platform", "-P"] multiple = true sources = ["fig"] [[commands.field]] id = "container_architecture" label = "Container architecture" type = "string" option = ["--container-architecture"] suggestions = [{ value = "linux/amd64", label = "linux/amd64" }, { value = "linux/arm64", label = "linux/arm64" }] sources = ["fig"] [[commands.field]] id = "bind" label = "Bind working directory" description = "Bind the working directory into the container instead of copying it." type = "boolean" option = ["--bind", "-b"] sources = ["fig"] [[commands.field]] id = "reuse" label = "Keep containers" type = "boolean" option = ["--reuse", "-r"] sources = ["fig"] [[commands.field]] id = "pull" label = "Pull images" type = "boolean" option = ["--pull", "-p"] sources = ["fig"] [[commands.field]] id = "watch" label = "Watch for changes" type = "boolean" option = ["--watch", "-w"] sources = ["fig"] [[commands.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["fig"] [[commands.task]] id = "run" label = "Run a workflow" fields = ["workflows", "job", "eventpath", "secret", "secret_file", "env", "env_file", "dryrun"] required = [] [[commands.task]] id = "list" label = "List workflows" set = { list = [true] } lock = ["list"] fields = ["list", "workflows"] required = [] [[commands.task]] id = "graph" label = "Show workflow graph" set = { graph = [true] } lock = ["graph"] fields = ["graph", "workflows"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["workflows", "job", "eventpath", "list", "graph", "dryrun", "secret", "secret_file", "env", "env_file"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["platform", "container_architecture", "bind", "reuse", "pull", "watch", "verbose", "quiet"]