Repository: nektos/act (language: go)

Issue:
Values in env are not interpolated correctly
### Bug report info

```plain text
$ act --bug-report
act version:            HEAD-3415347
GOOS:                   darwin
GOARCH:                 arm64
NumCPU:                 10
Docker host:            DOCKER_HOST environment variable is unset/empty.
Sockets found:
	/var/run/docker.sock
Config files:
	/Users/grigorii.entin/.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.18.3
	Module path:           command-line-arguments
	Main version:
	Main path:
	Main checksum:
	Build settings:
		-compiler:            gc
		-ldflags:             -X main.version=HEAD-3415347
		CGO_ENABLED:          1
		CGO_CFLAGS:
		CGO_CPPFLAGS:
		CGO_CXXFLAGS:
		CGO_LDFLAGS:
		GOARCH:               arm64
		GOOS:                 darwin
Docker Engine:
	Engine version:        20.10.16
	Engine runtime:        runc
	Cgroup version:        2
	Cgroup driver:         cgroupfs
	Storage driver:        overlay2
	Registry URI:          https://index.docker.io/v1/
	OS:                    Docker Desktop
	OS type:               linux
	OS version:
	OS arch:               aarch64
	OS kernel:             5.10.104-linuxkit
	OS CPU:                4
	OS memory:             7936 MB
	Security options:
		name=seccomp,profile=default
		name=cgroupns
```


### Command used with act

```sh
act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest
```


### Describe issue

1. Act does not interpolate certain formats correctly, in `env:`.
2. There's also an issue when `{{ env.XXX }}` passed as input to composite actions - basically, the env values are interpolated only once (vs recursively) (this is a major one for me).

Please see the test case output for act below, compared to the one from GitHub.

Act:

<img width="1015" alt="Screen Shot 2022-06-17 at 15 11 16" src="https://user-images.githubusercontent.com/803905/174305657-36d0245a-bd73-4579-8948-e9c4ad4b6048.png">

GitHub:

<img width="618" alt="Screen Shot 2022-06-17 at 14 48 23" src="https://user-images.githubusercontent.com/803905/174303929-46423878-aabb-4011-a3dc-aa9fc66fa474.png">



### Link to GitHub repository

https://github.com/grigorye/act-interp-demo

### Workflow content

```yml
on:
  push: {}
  workflow_dispatch: {}

jobs:
  interp:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        v1: [ "VALUE1" ]
        v2: [ "VALUE2" ]

    env:
      V1: ${{ matrix.v1 }}
      V1_V2: ${{ matrix.v1 }}_${{ matrix.v2 }}
      x_V1: x_${{ matrix.v1 }}
      x_V1_V2: x_${{ matrix.v1 }}_${{ matrix.v2 }}

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Dump environment
        run: |
          echo "V1: $V1"
          echo "V1_V2: $V1_V2"
          echo "x_V1: $x_V1"
          echo "x_V1_V2: $x_V1_V2"

      - name: Interpolate in script
        run: |
          echo "env.V1: ${{ env.V1 }}"
          echo "env.V1_V2: ${{ env.V1_V2 }}"
          echo "env.x_V1: ${{ env.x_V1 }}"
          echo "env.x_V1_V2: ${{ env.x_V1_V2 }}"

      - name: Interpolate in composite action
        uses: ./.github/actions/composite-action
        with:
          v1: ${{ env.V1 }}
          v1_v2: ${{ env.V1_V2 }}
          x_v1: ${{ env.x_V1 }}
          x_v1_v2: ${{ env.x_V1_V2 }}
```


### Relevant log output

```sh
$ act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-latest -v
WARN  ⚠ You are using Apple M1 chip and you have not specified container architecture, you might encounter issues while running act. If so, try running it with '--container-architecture linux/amd64'. ⚠
DEBU[0000] Loading environment from /Users/grigorii.entin/Workbench/act-interp-demo/.env
DEBU[0000] Loading secrets from /Users/grigorii.entin/Workbench/act-interp-demo/.secrets
DEBU[0000] Loading workflows from '/Users/grigorii.entin/Workbench/act-interp-demo/.github/workflows'
DEBU[0000] Loading workflows recursively
DEBU[0000] Found workflow '.DS_Store' in '/Users/grigorii.entin/Workbench/act-interp-demo/.github/workflows/.DS_Store'
DEBU[0000] Found workflow 'test.yml' in '/Users/grigorii.entin/Workbench/act-interp-demo/.github/workflows/test.yml'
DEBU[0000] Reading workflow '/Users/grigorii.entin/Workbench/act-interp-demo/.github/workflows/test.yml'
DEBU[0000] Planning event: push
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression '${{ matrix.v1 }}'
DEBU[0000] expression '${{ matrix.v1 }}' evaluated to '%!t(string=VALUE1)'
DEBU[0000] evaluating expression '${{ matrix.v1 }}_${{ matrix.v2 }}'
DEBU[0000] expression '${{ matrix.v1 }}_${{ matrix.v2 }}' evaluated to '%!t(string=VALUE1)'
DEBU[0000] evaluating expression 'x_${{ matrix.v1 }}'
DEBU[0000] expression 'x_${{ matrix.v1 }}' evaluated to '%!t(<nil>)'
DEBU[0000] evaluating expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}'
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' evaluated to '%!t(<nil>)'
DEBU[0000] evaluating expression 'true'
DEBU[0000] expression 'true' evaluated to 'true'
DEBU[0000] evaluating expression 'success()'
DEBU[0000] expression 'success()' evaluated to 'true'
[test.yml/interp] 🚀  Start image=ghcr.io/catthehacker/ubuntu:act-latest
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp]   🐳  docker pull image=ghcr.io/catthehacker/ubuntu:act-latest platform= username= forcePull=false
[test.yml/interp]   🐳  docker pull ghcr.io/catthehacker/ubuntu:act-latest
DEBU[0000] Image exists? true
[test.yml/interp] Removed container: 13f2fd5777c080c6e928971071c43f4ef0132c90e60057fbd7272e7fa79514af
[test.yml/interp]   🐳  docker volume rm act-test-yml-interp
[test.yml/interp]   🐳  docker volume rm act-test-yml-interp-env
[test.yml/interp]   🐳  docker create image=ghcr.io/catthehacker/ubuntu:act-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[test.yml/interp] Created container name=act-test-yml-interp id=432b365a3dbb9d784ab5971a18ed57108ebbde44553e0d2db46b26532a9b5916 from image ghcr.io/catthehacker/ubuntu:act-latest (platform: )
[test.yml/interp] ENV ==> [RUNNER_TOOL_CACHE=/opt/hostedtoolcache RUNNER_OS=Linux RUNNER_TEMP=/tmp]
[test.yml/interp]   🐳  docker run image=ghcr.io/catthehacker/ubuntu:act-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[test.yml/interp] Starting container: 432b365a3dbb9d784ab5971a18ed57108ebbde44553e0d2db46b26532a9b5916
[test.yml/interp] Started container: 432b365a3dbb9d784ab5971a18ed57108ebbde44553e0d2db46b26532a9b5916
[test.yml/interp]   🐳  docker exec cmd=[mkdir -m 0777 -p /var/run/act] user=root workdir=
[test.yml/interp] Exec command '[mkdir -m 0777 -p /var/run/act]'
[test.yml/interp] Working directory '/Users/grigorii.entin/Workbench/act-interp-demo'
[test.yml/interp]   🐳  docker cp src=/Users/grigorii.entin/Workbench/act-interp-demo/. dst=/Users/grigorii.entin/Workbench/act-interp-demo
[test.yml/interp]   🐳  docker exec cmd=[mkdir -p /Users/grigorii.entin/Workbench/act-interp-demo] user= workdir=
[test.yml/interp] Exec command '[mkdir -p /Users/grigorii.entin/Workbench/act-interp-demo]'
[test.yml/interp] Working directory '/Users/grigorii.entin/Workbench/act-interp-demo'
DEBU[0000] Writing tarball /var/folders/46/t8ph0gt50vx9_v5ydd53rlsc0000gp/T/act1320867682 from /Users/grigorii.entin/Workbench/act-interp-demo/.
DEBU[0000] Stripping prefix:/Users/grigorii.entin/Workbench/act-interp-demo/ src:/Users/grigorii.entin/Workbench/act-interp-demo/.
[test.yml/interp] Extracting content from '/var/folders/46/t8ph0gt50vx9_v5ydd53rlsc0000gp/T/act1320867682' to '/Users/grigorii.entin/Workbench/act-interp-demo'
[test.yml/interp] close /var/folders/46/t8ph0gt50vx9_v5ydd53rlsc0000gp/T/act1320867682: file already closed
DEBU[0000] Writing entry to tarball workflow/event.json len:2
DEBU[0000] Writing entry to tarball workflow/envs.txt len:0
DEBU[0000] Writing entry to tarball workflow/paths.txt len:0
[test.yml/interp] Extracting content to '/var/run/act/'
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp] Skipping local actions/checkout because workdir was already copied
[test.yml/interp] skip pre step for 'Checkout': no action model available
[test.yml/interp] 🧪  Matrix: map[v1:VALUE1 v2:VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp] Skipping local actions/checkout because workdir was already copied
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:0 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_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression ''
DEBU[0000] expression '' evaluated to 'true'
[test.yml/interp] ⭐ Run Main Checkout
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp] Skipping local actions/checkout because workdir was already copied
[test.yml/interp]   ✅  Success - Main Checkout
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:1 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_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression ''
DEBU[0000] expression '' evaluated to 'true'
[test.yml/interp] ⭐ Run Main Dump environment
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp] Wrote command

echo "V1: $V1"
echo "V1_V2: $V1_V2"
echo "x_V1: $x_V1"
echo "x_V1_V2: $x_V1_V2"


 to 'workflow/1'
DEBU[0000] Writing entry to tarball workflow/1 len:82
[test.yml/interp] Extracting content to '/var/run/act'
[test.yml/interp]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1] user= workdir=
[test.yml/interp] Exec command '[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1]'
[test.yml/interp] Working directory '/Users/grigorii.entin/Workbench/act-interp-demo'
| V1: VALUE1
| V1_V2: VALUE1
| x_V1: x_VALUE1
| x_V1_V2: x_VALUE1_VALUE2
[test.yml/interp]   ✅  Success - Main Dump environment
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:2 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_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression ''
DEBU[0000] expression '' evaluated to 'true'
[test.yml/interp] ⭐ Run Main Interpolate in script
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression 'echo "env.V1: ${{ env.V1 }}"
echo "env.V1_V2: ${{ env.V1_V2 }}"
echo "env.x_V1: ${{ env.x_V1 }}"
echo "env.x_V1_V2: ${{ env.x_V1_V2 }}"
' rewritten to 'format('echo "env.V1: {0}"
echo "env.V1_V2: {1}"
echo "env.x_V1: {2}"
echo "env.x_V1_V2: {3}"
', env.V1, env.V1_V2, env.x_V1, env.x_V1_V2)'
DEBU[0000] evaluating expression 'format('echo "env.V1: {0}"
echo "env.V1_V2: {1}"
echo "env.x_V1: {2}"
echo "env.x_V1_V2: {3}"
', env.V1, env.V1_V2, env.x_V1, env.x_V1_V2)'
DEBU[0000] expression 'format('echo "env.V1: {0}"
echo "env.V1_V2: {1}"
echo "env.x_V1: {2}"
echo "env.x_V1_V2: {3}"
', env.V1, env.V1_V2, env.x_V1, env.x_V1_V2)' evaluated to '%!t(string=echo "env.V1: VALUE1"
echo "env.V1_V2: VALUE1"
echo "env.x_V1: x_VALUE1"
echo "env.x_V1_V2: x_VALUE1_VALUE2"
)'
[test.yml/interp] Wrote command

echo "env.V1: VALUE1"
echo "env.V1_V2: VALUE1"
echo "env.x_V1: x_VALUE1"
echo "env.x_V1_V2: x_VALUE1_VALUE2"


 to 'workflow/2'
DEBU[0000] Writing entry to tarball workflow/2 len:111
[test.yml/interp] Extracting content to '/var/run/act'
[test.yml/interp]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/2] user= workdir=
[test.yml/interp] Exec command '[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/2]'
[test.yml/interp] Working directory '/Users/grigorii.entin/Workbench/act-interp-demo'
| env.V1: VALUE1
| env.V1_V2: VALUE1
| env.x_V1: x_VALUE1
| env.x_V1_V2: x_VALUE1_VALUE2
[test.yml/interp]   ✅  Success - Main Interpolate in script
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression '${{ env.V1_V2 }}' rewritten to 'format('{0}', env.V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.V1_V2)'
DEBU[0000] expression 'format('{0}', env.V1_V2)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression '${{ env.x_V1_V2 }}' rewritten to 'format('{0}', env.x_V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1_V2)'
DEBU[0000] expression 'format('{0}', env.x_V1_V2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression '${{ env.V1 }}' rewritten to 'format('{0}', env.V1)'
DEBU[0000] evaluating expression 'format('{0}', env.V1)'
DEBU[0000] expression 'format('{0}', env.V1)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression '${{ env.x_V1 }}' rewritten to 'format('{0}', env.x_V1)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1)'
DEBU[0000] expression 'format('{0}', env.x_V1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:3 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_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 INPUT_V1:VALUE1 INPUT_V1_V2:VALUE1 INPUT_X_V1:x_VALUE1 INPUT_X_V1_V2:x_VALUE1_VALUE2 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression ''
DEBU[0000] expression '' evaluated to 'true'
[test.yml/interp] ⭐ Run Main Interpolate in composite action
DEBU[0000] Read action &{X  Y map[v1:{. true } v1_v2:{. true } x_v1:{. true } x_v1_v2:{. true }] map[] {composite map[]   always()  always()   [] [{ {0 0    <nil> []    0 0} Show inputs  set +e
echo "inputs.v1: ${{ inputs.v1 }}"
echo "inputs.v1_v2: ${{ inputs.v1_v2 }}"
echo "inputs.x_v1: ${{ inputs.x_v1 }}"
echo "inputs.x_v1_v2: ${{ inputs.x_v1_v2 }}"
  bash {0 0    <nil> []    0 0} map[] false 0}]} { }} from 'Unknown'
DEBU[0000] About to run action &{X  Y map[v1:{. true } v1_v2:{. true } x_v1:{. true } x_v1_v2:{. true }] map[] {composite map[]   always()  always()   [] [{ {0 0    <nil> []    0 0} Show inputs  set +e
echo "inputs.v1: ${{ inputs.v1 }}"
echo "inputs.v1_v2: ${{ inputs.v1_v2 }}"
echo "inputs.x_v1: ${{ inputs.x_v1 }}"
echo "inputs.x_v1_v2: ${{ inputs.x_v1_v2 }}"
  bash {0 0    <nil> []    0 0} map[] false 0}]} { }}
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] type=2 actionDir=/Users/grigorii.entin/Workbench/act-interp-demo/.github/actions/composite-action actionPath= workdir=/Users/grigorii.entin/Workbench/act-interp-demo actionCacheDir=/Users/grigorii.entin/.cache/act actionName=./.github/actions/composite-action containerActionDir=/Users/grigorii.entin/Workbench/act-interp-demo/.github/actions/composite-action
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression '${{ env.V1 }}' rewritten to 'format('{0}', env.V1)'
DEBU[0000] evaluating expression 'format('{0}', env.V1)'
DEBU[0000] expression 'format('{0}', env.V1)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression '${{ env.V1_V2 }}' rewritten to 'format('{0}', env.V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.V1_V2)'
DEBU[0000] expression 'format('{0}', env.V1_V2)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression '${{ env.x_V1 }}' rewritten to 'format('{0}', env.x_V1)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1)'
DEBU[0000] expression 'format('{0}', env.x_V1)' evaluated to '%!t(string=x_${{ matrix.v1 }})'
DEBU[0000] expression '${{ env.x_V1_V2 }}' rewritten to 'format('{0}', env.x_V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1_V2)'
DEBU[0000] expression 'format('{0}', env.x_V1_V2)' evaluated to '%!t(string=x_${{ matrix.v1 }}_${{ matrix.v2 }})'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression '${{ env.V1 }}' rewritten to 'format('{0}', env.V1)'
DEBU[0000] evaluating expression 'format('{0}', env.V1)'
DEBU[0000] expression 'format('{0}', env.V1)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression '${{ env.V1_V2 }}' rewritten to 'format('{0}', env.V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.V1_V2)'
DEBU[0000] expression 'format('{0}', env.V1_V2)' evaluated to '%!t(string=VALUE1)'
DEBU[0000] expression '${{ env.x_V1 }}' rewritten to 'format('{0}', env.x_V1)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1)'
DEBU[0000] expression 'format('{0}', env.x_V1)' evaluated to '%!t(string=x_${{ matrix.v1 }})'
DEBU[0000] expression '${{ env.x_V1_V2 }}' rewritten to 'format('{0}', env.x_V1_V2)'
DEBU[0000] evaluating expression 'format('{0}', env.x_V1_V2)'
DEBU[0000] expression 'format('{0}', env.x_V1_V2)' evaluated to '%!t(string=x_${{ matrix.v1 }}_${{ matrix.v2 }})'
DEBU[0000] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0000] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0000] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0000] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0000] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH:/Users/grigorii.entin/Workbench/act-interp-demo/.github/actions/composite-action GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:nektos/act GITHUB_API_URL:https://api.github.com GITHUB_BASE_REF: GITHUB_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] evaluating expression ''
DEBU[0000] expression '' evaluated to 'true'
[test.yml/interp] ⭐ Run Main Show inputs
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] expression 'set +e
echo "inputs.v1: ${{ inputs.v1 }}"
echo "inputs.v1_v2: ${{ inputs.v1_v2 }}"
echo "inputs.x_v1: ${{ inputs.x_v1 }}"
echo "inputs.x_v1_v2: ${{ inputs.x_v1_v2 }}"
' rewritten to 'format('set +e
echo "inputs.v1: {0}"
echo "inputs.v1_v2: {1}"
echo "inputs.x_v1: {2}"
echo "inputs.x_v1_v2: {3}"
', inputs.v1, inputs.v1_v2, inputs.x_v1, inputs.x_v1_v2)'
DEBU[0000] evaluating expression 'format('set +e
echo "inputs.v1: {0}"
echo "inputs.v1_v2: {1}"
echo "inputs.x_v1: {2}"
echo "inputs.x_v1_v2: {3}"
', inputs.v1, inputs.v1_v2, inputs.x_v1, inputs.x_v1_v2)'
DEBU[0000] expression 'format('set +e
echo "inputs.v1: {0}"
echo "inputs.v1_v2: {1}"
echo "inputs.x_v1: {2}"
echo "inputs.x_v1_v2: {3}"
', inputs.v1, inputs.v1_v2, inputs.x_v1, inputs.x_v1_v2)' evaluated to '%!t(string=set +e
echo "inputs.v1: VALUE1"
echo "inputs.v1_v2: VALUE1"
echo "inputs.x_v1: x_${{ matrix.v1 }}"
echo "inputs.x_v1_v2: x_${{ matrix.v1 }}_${{ matrix.v2 }}"
)'
[test.yml/interp] Wrote command

set +e
echo "inputs.v1: VALUE1"
echo "inputs.v1_v2: VALUE1"
echo "inputs.x_v1: x_${{ matrix.v1 }}"
echo "inputs.x_v1_v2: x_${{ matrix.v1 }}_${{ matrix.v2 }}"


 to 'workflow/0.sh'
DEBU[0000] Writing entry to tarball workflow/0.sh len:160
[test.yml/interp] Extracting content to '/var/run/act'
[test.yml/interp]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/0.sh] user= workdir=
[test.yml/interp] Exec command '[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/0.sh]'
[test.yml/interp] Working directory '/Users/grigorii.entin/Workbench/act-interp-demo'
| inputs.v1: VALUE1
| inputs.v1_v2: VALUE1
| /var/run/act/workflow/0.sh: line 5: inputs.x_v1: x_${{ matrix.v1 }}: bad substitution
| /var/run/act/workflow/0.sh: line 6: inputs.x_v1_v2: x_${{ matrix.v1 }}_${{ matrix.v2 }}: bad substitution
[test.yml/interp]   ❌  Failure - Main Show inputs
[test.yml/interp] exitcode '1': failure
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
[test.yml/interp]   ❌  Failure - Main Interpolate in composite action
[test.yml/interp] exitcode '1': failure
DEBU[0000] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0000] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0000] using github ref: refs/heads/master
DEBU[0000] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0001] using github ref: refs/heads/master
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] expression '${{ env.V1_V2 }}' rewritten to 'format('{0}', env.V1_V2)'
DEBU[0001] evaluating expression 'format('{0}', env.V1_V2)'
DEBU[0001] expression 'format('{0}', env.V1_V2)' evaluated to '%!t(string=VALUE1)'
DEBU[0001] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0001] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0001] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
DEBU[0001] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0001] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0001] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0001] expression '${{ env.x_V1_V2 }}' rewritten to 'format('{0}', env.x_V1_V2)'
DEBU[0001] evaluating expression 'format('{0}', env.x_V1_V2)'
DEBU[0001] expression 'format('{0}', env.x_V1_V2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0001] expression '${{ env.V1 }}' rewritten to 'format('{0}', env.V1)'
DEBU[0001] evaluating expression 'format('{0}', env.V1)'
DEBU[0001] expression 'format('{0}', env.V1)' evaluated to '%!t(string=VALUE1)'
DEBU[0001] expression '${{ env.x_V1 }}' rewritten to 'format('{0}', env.x_V1)'
DEBU[0001] evaluating expression 'format('{0}', env.x_V1)'
DEBU[0001] expression 'format('{0}', env.x_V1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp] setupEnv => map[ACT:true AGENT_TOOLSDIRECTORY:/opt/hostedtoolcache CI:true DEBIAN_FRONTEND:noninteractive DEPLOYMENT_BASEPATH:/opt/runner GITHUB_ACTION:post-3 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_ENV:/var/run/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/var/run/act/workflow/event.json GITHUB_GRAPHQL_URL:https://api.github.com/graphql GITHUB_HEAD_REF: GITHUB_JOB:interp GITHUB_PATH:/var/run/act/workflow/paths.txt GITHUB_REF:refs/heads/master GITHUB_REF_NAME:master GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:grigorye/act-interp-demo GITHUB_REPOSITORY_OWNER:grigorye GITHUB_RETENTION_DAYS:0 GITHUB_RUN_ID:1 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://github.com GITHUB_SHA:aec6e6df6132fe1050d011d083f93817b58b1d4a GITHUB_TOKEN: GITHUB_WORKFLOW:test.yml GITHUB_WORKSPACE:/Users/grigorii.entin/Workbench/act-interp-demo IMAGE_OS:ubuntu20 INPUT_V1:VALUE1 INPUT_V1_V2:VALUE1 INPUT_X_V1:x_VALUE1 INPUT_X_V1_V2:x_VALUE1_VALUE2 ImageOS:ubuntu20 LSB_OS_VERSION:2004 LSB_RELEASE:20.04 PATH:/opt/hostedtoolcache/node/16.15.0/arm64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUNNER_PERFLOG:/dev/null RUNNER_TRACKING_ID: RUNNER_USER:root RUN_TOOL_CACHE:/opt/hostedtoolcache USER:root V1:VALUE1 V1_V2:VALUE1 x_V1:x_VALUE1 x_V1_V2:x_VALUE1_VALUE2]
DEBU[0001] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0001] using github ref: refs/heads/master
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] evaluating expression 'always()'
DEBU[0001] expression 'always()' evaluated to 'true'
[test.yml/interp] ⭐ Run Post Interpolate in composite action
[test.yml/interp] run post step for 'Interpolate in composite action'
DEBU[0001] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0001] using github ref: refs/heads/master
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] expression '${{ env.x_V1 }}' rewritten to 'format('{0}', env.x_V1)'
DEBU[0001] evaluating expression 'format('{0}', env.x_V1)'
DEBU[0001] expression 'format('{0}', env.x_V1)' evaluated to '%!t(string=x_${{ matrix.v1 }})'
DEBU[0001] expression '${{ env.x_V1_V2 }}' rewritten to 'format('{0}', env.x_V1_V2)'
DEBU[0001] evaluating expression 'format('{0}', env.x_V1_V2)'
DEBU[0001] expression 'format('{0}', env.x_V1_V2)' evaluated to '%!t(string=x_${{ matrix.v1 }}_${{ matrix.v2 }})'
DEBU[0001] expression '${{ env.V1 }}' rewritten to 'format('{0}', env.V1)'
DEBU[0001] evaluating expression 'format('{0}', env.V1)'
DEBU[0001] expression 'format('{0}', env.V1)' evaluated to '%!t(string=VALUE1)'
DEBU[0001] expression '${{ env.V1_V2 }}' rewritten to 'format('{0}', env.V1_V2)'
DEBU[0001] evaluating expression 'format('{0}', env.V1_V2)'
DEBU[0001] expression 'format('{0}', env.V1_V2)' evaluated to '%!t(string=VALUE1)'
DEBU[0001] expression 'x_${{ matrix.v1 }}_${{ matrix.v2 }}' rewritten to 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0001] evaluating expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)'
DEBU[0001] expression 'format('x_{0}_{1}', matrix.v1, matrix.v2)' evaluated to '%!t(string=x_VALUE1_VALUE2)'
DEBU[0001] expression 'x_${{ matrix.v1 }}' rewritten to 'format('x_{0}', matrix.v1)'
DEBU[0001] evaluating expression 'format('x_{0}', matrix.v1)'
DEBU[0001] expression 'format('x_{0}', matrix.v1)' evaluated to '%!t(string=x_VALUE1)'
[test.yml/interp]   ✅  Success - Post Interpolate in composite action
[test.yml/interp] skip post step for 'Checkout': no action model available
DEBU[0001] Loading slug from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Loading revision from git directory '/Users/grigorii.entin/Workbench/act-interp-demo/.git'
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
DEBU[0001] HEAD points to 'aec6e6df6132fe1050d011d083f93817b58b1d4a'
DEBU[0001] using github ref: refs/heads/master
DEBU[0001] Found revision: aec6e6df6132fe1050d011d083f93817b58b1d4a
Error: Job 'interp' failed
```


### Additional information

Both issues are potentially fixed in #1222 


Discussion / hints:

Fix patch:
diff --git a/pkg/runner/runner.go b/pkg/runner/runner.go
index 64ba8e81249..aa66af7a252 100644
--- a/pkg/runner/runner.go
+++ b/pkg/runner/runner.go
@@ -14,7 +14,6 @@ import (
 
 	"github.com/nektos/act/pkg/common"
 	"github.com/nektos/act/pkg/container"
-	"github.com/nektos/act/pkg/exprparser"
 	"github.com/nektos/act/pkg/model"
 )
 
@@ -165,10 +164,7 @@ func (runner *runnerImpl) NewPlanExecutor(plan *model.Plan) common.Executor {
 					// evaluate environment variables since they can contain
 					// GitHub's special environment variables.
 					for k, v := range rc.GetEnv() {
-						valueEval, err := rc.ExprEval.evaluate(ctx, v, exprparser.DefaultStatusCheckNone)
-						if err == nil {
-							rc.Env[k] = fmt.Sprintf("%v", valueEval)
-						}
+						rc.Env[k] = rc.ExprEval.Interpolate(ctx, v)
 					}
 					if len(rc.String()) > maxJobNameLen {
 						maxJobNameLen = len(rc.String())


Test patch:
diff --git a/pkg/runner/runner_test.go b/pkg/runner/runner_test.go
index 8f166a3b5e3..fd0d67d86ff 100644
--- a/pkg/runner/runner_test.go
+++ b/pkg/runner/runner_test.go
@@ -177,6 +177,7 @@ func TestRunEvent(t *testing.T) {
 		{workdir, "if-expressions", "push", "Job 'mytest' failed", platforms},
 		{workdir, "actions-environment-and-context-tests", "push", "", platforms},
 		{workdir, "uses-action-with-pre-and-post-step", "push", "", platforms},
+		{workdir, "evalenv", "push", "", platforms},
 		{"../model/testdata", "strategy", "push", "", platforms}, // TODO: move all testdata into pkg so we can validate it with planner and runner
 		// {"testdata", "issue-228", "push", "", platforms, }, // TODO [igni]: Remove this once everything passes
 		{"../model/testdata", "container-volumes", "push", "", platforms},
diff --git a/pkg/runner/testdata/evalenv/push.yml b/pkg/runner/testdata/evalenv/push.yml
new file mode 100644
index 00000000000..3d2c97c3147
--- /dev/null
+++ b/pkg/runner/testdata/evalenv/push.yml
@@ -0,0 +1,21 @@
+name: CI
+
+on: push
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    env:
+      BUILD_DIR: ${{ github.workspace }}/build
+    steps:
+      - name: Dump
+        run: |
+          echo "$BUILD_DIR"
+          echo "$EXPECTED_BUILD_DIR"
+          echo "$GITHUB_WORKSPACE/build"
+        env:
+          EXPECTED_BUILD_DIR: ${{ github.workspace }}/build
+      - name: Test
+        run: |
+          [ "$BUILD_DIR" = "$EXPECTED_BUILD_DIR" ] && [ "$BUILD_DIR" = "$GITHUB_WORKSPACE/build" ]
+        env:
+          EXPECTED_BUILD_DIR: ${{ github.workspace }}/build