Invalid result from skipped job
Saichovsky opened this issue Β· comments
Simon Mbuthia commented
Bug report info
act version: 0.2.58
GOOS: darwin
GOARCH: amd64
NumCPU: 10
Docker host: DOCKER_HOST environment variable is not set
Sockets found:
/var/run/docker.sock
Config files:
/Users/user/.actrc:
-P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest
-P ubuntu-22.04=ghcr.io/catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=ghcr.io/catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=ghcr.io/catthehacker/ubuntu:act-18.04
Build info:
Go version: go1.21.6
Module path: command-line-arguments
Main version:
Main path:
Main checksum:
Build settings:
-buildmode: exe
-compiler: gc
-ldflags: -X main.version=0.2.58
DefaultGODEBUG: panicnil=1
CGO_ENABLED: 1
CGO_CFLAGS:
CGO_CPPFLAGS:
CGO_CXXFLAGS:
CGO_LDFLAGS:
GOARCH: amd64
GOOS: darwin
GOAMD64: v1
Docker Engine:
Engine version: 23.0.6
Engine runtime: runc
Cgroup version: 1
Cgroup driver: cgroupfs
Storage driver: overlay2
Registry URI: https://index.docker.io/v1/
OS: Alpine Linux v3.18
OS type: linux
OS version: 3.18.0
OS arch: aarch64
OS kernel: 6.1.30-0-virt
OS CPU: 2
OS memory: 3915 MB
Security options:
name=seccomp,profile=builtin
Command used with act
act --pull=false -P gh-public=bash:alpine3.19 pull_request
Describe issue
According to the documentation on the needs
context, the result of the job that is depended on can either be success
, failure
, skipped
or cancelled
. When I tried to capture the result of a skipped job, I got none of the valid results, but an empty double-quoted string.
Link to GitHub repository
No response
Workflow content
name: Testing labels logic
on:
pull_request: {}
jobs:
job-one:
if: contains(github.event.pull_request.labels.*.name, 'mylabel')
outputs:
output: ${{steps.step-one.outputs.output}}
name: job-one
runs-on: gh-public
steps:
- id: step-one
run: echo "output=1" >> "$GITHUB_OUTPUT"
job-two:
needs: [job-one]
name: job-two
runs-on: gh-public
if: ${{ always() }}
steps:
- id: step-two
run: |
echo 'Result: ${{toJSON(needs.job-one.result)}}'
Relevant log output
[Testing labels logic/job-one] [DEBUG] evaluating expression 'contains(github.event.pull_request.labels.*.name, 'mylabel')'
[Testing labels logic/job-one] [DEBUG] expression 'contains(github.event.pull_request.labels.*.name, 'mylabel')' evaluated to 'false'
[Testing labels logic/job-one] [DEBUG] Skipping job 'job-one' due to 'contains(github.event.pull_request.labels.*.name, 'mylabel')'
[Testing labels logic/job-two] [DEBUG] evaluating expression '${{ always() }}'
[Testing labels logic/job-two] [DEBUG] expression '${{ always() }}' evaluated to 'true'
[Testing labels logic/job-two] π Start image=bash:alpine3.19
[Testing labels logic/job-two] π³ docker pull image=bash:alpine3.19 platform= username= forcePull=false
[Testing labels logic/job-two] [DEBUG] π³ docker pull bash:alpine3.19
[Testing labels logic/job-two] [DEBUG] Image exists? true
[Testing labels logic/job-two] π³ docker create image=bash:alpine3.19 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Testing labels logic/job-two] [DEBUG] Common container.Config ==> &{Hostname: Domainname: User: AttachStdin:false AttachStdout:false AttachStderr:false ExposedPorts:map[] Tty:false OpenStdin:false StdinOnce:false Env:[RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=ARM64 RUNNER_TEMP=/tmp LANG=C.UTF-8] Cmd:[] Healthcheck:<nil> ArgsEscaped:false Image:bash:alpine3.19 Volumes:map[] WorkingDir:/Users/user/act-test Entrypoint:[] NetworkDisabled:false MacAddress: OnBuild:[] Labels:map[] StopSignal: StopTimeout:<nil> Shell:[]}
[Testing labels logic/job-two] [DEBUG] Common container.HostConfig ==> &{Binds:[/var/run/docker.sock:/var/run/docker.sock] ContainerIDFile: LogConfig:{Type: Config:map[]} NetworkMode:host PortBindings:map[] RestartPolicy:{Name: MaximumRetryCount:0} AutoRemove:false VolumeDriver: VolumesFrom:[] ConsoleSize:[0 0] Annotations:map[] CapAdd:[] CapDrop:[] CgroupnsMode: DNS:[] DNSOptions:[] DNSSearch:[] ExtraHosts:[] GroupAdd:[] IpcMode: Cgroup: Links:[] OomScoreAdj:0 PidMode: Privileged:false PublishAllPorts:false ReadonlyRootfs:false SecurityOpt:[] StorageOpt:map[] Tmpfs:map[] UTSMode: UsernsMode: ShmSize:0 Sysctls:map[] Runtime: Isolation: Resources:{CPUShares:0 Memory:0 NanoCPUs:0 CgroupParent: BlkioWeight:0 BlkioWeightDevice:[] BlkioDeviceReadBps:[] BlkioDeviceWriteBps:[] BlkioDeviceReadIOps:[] BlkioDeviceWriteIOps:[] CPUPeriod:0 CPUQuota:0 CPURealtimePeriod:0 CPURealtimeRuntime:0 CpusetCpus: CpusetMems: Devices:[] DeviceCgroupRules:[] DeviceRequests:[] KernelMemory:0 KernelMemoryTCP:0 MemoryReservation:0 MemorySwap:0 MemorySwappiness:<nil> OomKillDisable:<nil> PidsLimit:<nil> Ulimits:[] CPUCount:0 CPUPercent:0 IOMaximumIOps:0 IOMaximumBandwidth:0} Mounts:[{Type:volume Source:act-toolcache Target:/opt/hostedtoolcache ReadOnly:false Consistency: BindOptions:<nil> VolumeOptions:<nil> TmpfsOptions:<nil> ClusterOptions:<nil>} {Type:volume Source:act-Testing-labels-logic-job-two-6e27a7f53bb8478bf7a6e6a7b7b96e9ed9456aecd63f2a0d97956303df9d0cb9-env Target:/var/run/act ReadOnly:false Consistency: BindOptions:<nil> VolumeOptions:<nil> TmpfsOptions:<nil> ClusterOptions:<nil>} {Type:volume Source:act-Testing-labels-logic-job-two-6e27a7f53bb8478bf7a6e6a7b7b96e9ed9456aecd63f2a0d97956303df9d0cb9 Target:/Users/user/act-test ReadOnly:false Consistency: BindOptions:<nil> VolumeOptions:<nil> TmpfsOptions:<nil> ClusterOptions:<nil>}] MaskedPaths:[] ReadonlyPaths:[] Init:<nil>}
[Testing labels logic/job-two] [DEBUG] input.NetworkAliases ==> [job-two]
[Testing labels logic/job-two] [DEBUG] Created container name=act-Testing-labels-logic-job-two-6e27a7f53bb8478bf7a6e6a7b7b96e9ed9456aecd63f2a0d97956303df9d0cb9 id=095971723abd08d57dc8bafa63beca7aaa392e4918f03866d17efeefcc543b94 from image bash:alpine3.19 (platform: )
[Testing labels logic/job-two] [DEBUG] ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_ARCH=ARM64 RUNNER_TEMP=/tmp LANG=C.UTF-8]
[Testing labels logic/job-two] π³ docker run image=bash:alpine3.19 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Testing labels logic/job-two] [DEBUG] Starting container: 095971723abd08d57dc8bafa63beca7aaa392e4918f03866d17efeefcc543b94
[Testing labels logic/job-two] [DEBUG] Started container: 095971723abd08d57dc8bafa63beca7aaa392e4918f03866d17efeefcc543b94
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/event.json len:2
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/envs.txt len:0
[Testing labels logic/job-two] [DEBUG] Extracting content to '/var/run/act/'
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] [DEBUG] expression 'echo 'Result: ${{toJSON(needs.job-one.result)}}'' rewritten to 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] evaluating expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))' evaluated to '%!t(string=echo 'Result: ""')'
[Testing labels logic/job-two] [DEBUG] expression 'echo 'Result: ${{toJSON(needs.job-one.result)}}'' rewritten to 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] evaluating expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))' evaluated to '%!t(string=echo 'Result: ""')'
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.10.6:50814/ CI:true GITHUB_ACTION:step-two GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:nektos/act GITHUB_API_URL:https://api.github.com GITHUB_BASE_REF: GITHUB_EVENT_NAME:pull_request GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:job-two GITHUB_REF:refs/pull/%!f(<nil>)/merge GITHUB_REF_NAME:%!f(<nil>)/merge GITHUB_REF_TYPE: GITHUB_REPOSITORY: GITHUB_REPOSITORY_OWNER: GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:ef28f1e8f69b39e0bf3954658ab4aec9d48542d2 GITHUB_WORKFLOW:Testing labels logic GITHUB_WORKSPACE:/Users/user/act-test ImageOS:ghpublic RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID:]
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] [DEBUG] evaluating expression ''
[Testing labels logic/job-two] [DEBUG] expression '' evaluated to 'true'
[Testing labels logic/job-two] [DEBUG] expression 'echo 'Result: ${{toJSON(needs.job-one.result)}}'' rewritten to 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] evaluating expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))' evaluated to '%!t(string=echo 'Result: ""')'
[Testing labels logic/job-two] β Run Main echo 'Result: ""'
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/outputcmd.txt len:0
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/statecmd.txt len:0
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/pathcmd.txt len:0
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/envs.txt len:0
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/SUMMARY.md len:0
[Testing labels logic/job-two] [DEBUG] Extracting content to '/var/run/act'
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
[Testing labels logic/job-two] [DEBUG] expression 'echo 'Result: ${{toJSON(needs.job-one.result)}}'' rewritten to 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] evaluating expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))' evaluated to '%!t(string=echo 'Result: ""')'
[Testing labels logic/job-two] [DEBUG] Wrote command
echo 'Result: ""'
to 'workflow/step-two'
[Testing labels logic/job-two] [DEBUG] Writing entry to tarball workflow/step-two len:19
[Testing labels logic/job-two] [DEBUG] Extracting content to '/var/run/act'
[Testing labels logic/job-two] π³ docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/step-two] user= workdir=
[Testing labels logic/job-two] [DEBUG] Exec command '[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/step-two]'
[Testing labels logic/job-two] [DEBUG] Working directory '/Users/user/act-test'
[Testing labels logic/job-two] | Result: ""
[Testing labels logic/job-two] β
Success - Main echo 'Result: ""'
[Testing labels logic/job-two] [DEBUG] expression 'echo 'Result: ${{toJSON(needs.job-one.result)}}'' rewritten to 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] evaluating expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))'
[Testing labels logic/job-two] [DEBUG] expression 'format('echo ''Result: {0}''', toJSON(needs.job-one.result))' evaluated to '%!t(string=echo 'Result: ""')'
[Testing labels logic/job-two] Cleaning up container for job job-two
[Testing labels logic/job-two] [DEBUG] Removed container: 095971723abd08d57dc8bafa63beca7aaa392e4918f03866d17efeefcc543b94
[Testing labels logic/job-two] [DEBUG] π³ docker volume rm act-Testing-labels-logic-job-two-6e27a7f53bb8478bf7a6e6a7b7b96e9ed9456aecd63f2a0d97956303df9d0cb9
[Testing labels logic/job-two] [DEBUG] π³ docker volume rm act-Testing-labels-logic-job-two-6e27a7f53bb8478bf7a6e6a7b7b96e9ed9456aecd63f2a0d97956303df9d0cb9-env
[Testing labels logic/job-two] π Job succeeded
[Testing labels logic/job-two] unable to get git repo (githubInstance: github.com; remoteName: origin, repoPath: /Users/user/act-test): remote not found
[Testing labels logic/job-two] [DEBUG] Found revision: ef28f1e8f69b39e0bf3954658ab4aec9d48542d2
Additional information
No response
Simon Mbuthia commented