-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Bug report info
act version: 0.2.76
GOOS: darwin
GOARCH: arm64
NumCPU: 14
Docker host: unix:///Users/REDACTED/.rd/docker.sock
Sockets found:
Config files:
/Users/REDACTED/Library/Application Support/act/actrc:
-P ubuntu-latest=node:16-buster-slim
-P ubuntu-22.04=node:16-bullseye-slim
-P ubuntu-20.04=node:16-buster-slim
-P ubuntu-18.04=node:16-buster-slim
/Users/REDACTED/.actrc:
--container-architecture=linux/amd64
.actrc:
--platform runner-size=large=node:16-bullseye-slim
Build info:
Go version: go1.24.1
Module path: github.com/nektos/act
Main version: v0.2.76
Main path: github.com/nektos/act
Main checksum:
Build settings:
-buildmode: exe
-compiler: gc
-ldflags: -s -w -X main.version=0.2.76 -X main.commit=4f4913f9f34da9f349bf4f842c56e9d7f8af3729 -X main.date=2025-04-01T02:36:03Z -X main.builtBy=goreleaser
CGO_ENABLED: 0
GOARCH: arm64
GOOS: darwin
GOARM64: v8.0
vcs: git
vcs.revision: 4f4913f9f34da9f349bf4f842c56e9d7f8af3729
vcs.time: 2025-04-01T02:35:41Z
vcs.modified: false
Docker Engine:
Engine version: 26.1.5
Engine runtime: runc
Cgroup version: 2
Cgroup driver: cgroupfs
Storage driver: overlay2
Registry URI: https://index.docker.io/v1/
OS: Alpine Linux v3.20
OS type: linux
OS version: 3.20.5
OS arch: aarch64
OS kernel: 6.6.71-0-virt
OS CPU: 6
OS memory: 7936 MB
Security options:
name=seccomp,profile=builtin
name=cgroupns
Command used with act
act pull_request --platform runner-size=large=node:16-bullseye-slimDescribe issue
act doesn't support self-hosted runners when the label contains =. For example, when I set --platform runner-size=large=node:16-bullseye-slim, I'd expect a job with runs-on: runner-size=large to use the node:16-bullseye-slim label when run on act.
Instead, I just get the following error message:
[my-workflow.yaml/my-job] 🚧 Skipping unsupported platform -- Try running with `-P runner-size=large=...`
This workflow runs fine in GitHub (i.e., these are valid labels), we only have issues with act
Link to GitHub repository
No response
Workflow content
on:
pull_request: {}
workflow_dispatch: {}
defaults:
run:
shell: bash
jobs:
my-job:
runs-on: runner-size=large
steps:
- run: echo Hello, world!Relevant log output
DEBU[0000] Handling container host and socket
DEBU[0000] Defaulting container socket to DOCKER_HOST
INFO[0000] Using docker host 'unix:///Users/{REDACTED_HOME_DIR}/.rd/docker.sock', and daemon socket 'unix:///Users/{REDACTED_HOME_DIR}/.rd/docker.sock'
DEBU[0000] Loading environment from {REDACTED_WORKING_DIR}/.env
DEBU[0000] Loading action inputs from {REDACTED_WORKING_DIR}/.input
DEBU[0000] Loading secrets from {REDACTED_WORKING_DIR}/.secrets
DEBU[0000] Conditional GET for notices etag=80ed96e6-b434-4a19-8c41-d896d693b14b
DEBU[0000] Loading vars from {REDACTED_WORKING_DIR}/.vars
DEBU[0000] Evaluated matrix inclusions: map[]
DEBU[0000] Loading workflows from '{REDACTED_WORKING_DIR}/.github/workflows'
DEBU[0000] Loading workflows recursively
DEBU[0000] Found workflow 'my-workflow.yaml' in '{REDACTED_WORKING_DIR}/.github/workflows/my-workflow.yaml'
DEBU[0000] Reading workflow '{REDACTED_WORKING_DIR}/.github/workflows/my-workflow.yaml'
DEBU[0000] Using first passed in arguments event for filtering: pull_request
DEBU[0000] Preparing plan with a job: my-job
DEBU[0000] Using first passed in arguments event: pull_request
DEBU[0000] Planning job: my-job
DEBU[0000] gc: 2025-05-27 17:43:19.377129 +0100 BST m=+0.153301251 module=artifactcache
DEBU[0000] Plan Stages: [0x140001220d8]
DEBU[0000] Stages Runs: [my-job]
DEBU[0000] Job.Name: my-job
DEBU[0000] Job.RawNeeds: {0 0 <nil> [] 0 0}
DEBU[0000] Job.RawRunsOn: {8 0 !!str runner-size=large <nil> [] 11 14}
DEBU[0000] Job.Env: {0 0 <nil> [] 0 0}
DEBU[0000] Job.If: {0 0 success() <nil> [] 0 0}
DEBU[0000] Job.Steps: actions/checkout@v4
DEBU[0000] Job.Steps: make artifacts.jsonl
DEBU[0000] Job.Steps: Publish to Artifactory
DEBU[0000] Job.TimeoutMinutes:
DEBU[0000] Job.Services: map[]
DEBU[0000] Job.Strategy: <nil>
DEBU[0000] Job.RawContainer: {0 0 <nil> [] 0 0}
DEBU[0000] Job.Defaults.Run.Shell:
DEBU[0000] Job.Defaults.Run.WorkingDirectory:
DEBU[0000] Job.Outputs: map[]
DEBU[0000] Job.Uses:
DEBU[0000] Job.With: map[]
DEBU[0000] Job.Result:
DEBU[0000] Empty Strategy, matrixes=[map[]]
DEBU[0000] Job Matrices: [map[]]
DEBU[0000] Runner Matrices: map[]
DEBU[0000] Final matrix after applying user inclusions '[map[]]'
DEBU[0000] Found revision: c9a389b8e7ff394835577f49c0cadaf1
DEBU[0000] Detected CPUs: 14
[my-workflow.yaml/my-job] [DEBUG] evaluating expression 'success()'
[my-workflow.yaml/my-job] [DEBUG] expression 'success()' evaluated to 'true'
[my-workflow.yaml/my-job] 🚧 Skipping unsupported platform -- Try running with `-P runner-size=large=...`
DEBU[0000] Saving notices etag=80ed96e6-b434-4a19-8c41-d896d693b14b
DEBU[0000] No new noticesAdditional information
The cmd.newPlatforms() function splits on the first equals, so it'll be parsing the string "runner-size=large=node:16-bullseye-slim" as []string{"runner-size", "large", "node:16-bullseye-slim"} and discarding it.
I'd be happy to provide a PR to change this parsing code so that it splits on the last equals instead, if you'd consider accepting this change