nektos / act

Run your GitHub Actions locally πŸš€

Home Page:https://nektosact.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Invalid result from skipped job

Saichovsky opened this issue Β· comments

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

image

Here is what the output for the same workflow looks like in GitHub Actions