[GH-ISSUE #5931] composite not working #1290

Open
opened 2026-03-01 21:50:11 +03:00 by kerem · 0 comments
Owner

Originally created by @gonsolo on GitHub (Sep 16, 2025).
Original GitHub issue: https://github.com/nektos/act/issues/5931

Bug report info

I am running:

act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345 --artifact-server-path /tmp/artifacts

which has:

   - name: Build GDS
        uses: TinyTapeout/tt-gds-action@ttsky25a
        with:
          pdk: sky130
          tools-ref: ttsky25a

in this action there is:

   # Install packages for 'Render PNG from GDS' step and ghdl to process VHDL files:
    - name: Install prerequisites
      uses: awalsh128/cache-apt-pkgs-action@v1.4.3
      with:
        packages: librsvg2-bin pngquant ghdl-llvm # librsvg2-bin for rsvg-convert; pngquant for heavy PNG compression.
        version: ttihp25b # I think naming a version builds a reusable packages cache for that name.

but this fails with:

[gds/gds]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-1-composite-pre-cache.sh] user= workdir=
| 13:17:42.354 Normalizing package list...
| 13:17:42.395 done
| 13:17:42.400 Validating action arguments (version='ttihp25b', packages='')...
| 13:17:42.404 aborted
| 13:17:42.406 Packages argument cannot be empty.
[gds/gds]   ❌  Failure - Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \
  ~/cache-apt-pkgs \
  "$VERSION" \
  "$EXEC_INSTALL_SCRIPTS" \
  "$DEBUG" \
  "$PACKAGES"
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV


so the packages are not correctly handled.

Command used with act

act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345 --artifact-server-path /tmp/artifacts

Describe issue

act fails to correctly execute a complicated workflow.

https://github.com/gonsolo/TinyQV-GPU/blob/main/.github/workflows/gds.yaml

Workflow content

gonsolo TinyQV-GPU:cat  .github/workflows/gds.yaml 
name: gds

on:
  push:
  workflow_dispatch:

jobs:
  gds:
    runs-on: ubuntu-24.04
    steps:
      - name: checkout repo
        uses: actions/checkout@v4
        with:
          submodules: recursive

      - name: Build GDS
        uses: TinyTapeout/tt-gds-action@ttsky25a
        with:
          pdk: sky130
          tools-ref: ttsky25a

  precheck:
    needs: gds
    runs-on: ubuntu-24.04
    steps:
      - name: Run Tiny Tapeout Precheck
        uses: TinyTapeout/tt-gds-action/precheck@ttsky25a
        with:
          pdk: sky130
          tools-ref: ttsky25a

  gl_test:
    needs: gds
    runs-on: ubuntu-24.04
    steps:
      - name: checkout repo
        uses: actions/checkout@v4
        with:
          submodules: recursive

      - name: GL test
        uses: TinyTapeout/tt-gds-action/gl_test@ttsky25a
        with:
          pdk: sky130

  viewer:
    needs: gds
    runs-on: ubuntu-24.04
    permissions:
      pages: write      # to deploy to Pages
      id-token: write   # to verify the deployment originates from an appropriate source
    steps:
      - uses: TinyTapeout/tt-gds-action/viewer@ttsky25a
        with:
          pdk: sky130

Relevant log output

act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock' 
[gds/gds] ⭐ Run Set up job
[gds/gds] 🚀  Start image=catthehacker/ubuntu:act-24.04
[gds/gds]   🐳  docker pull image=catthehacker/ubuntu:act-24.04 platform= username= forcePull=true
[gds/gds]   🐳  docker create image=catthehacker/ubuntu:act-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[gds/gds]   🐳  docker run image=catthehacker/ubuntu:act-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[gds/gds]   🐳  docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[gds/gds]   ✅  Success - Set up job
[gds/gds]   ☁  git clone 'https://github.com/TinyTapeout/tt-gds-action' # ref=ttsky25a
[gds/gds] ⭐ Run Pre Build GDS
[gds/gds]   ☁  git clone 'https://github.com/awalsh128/cache-apt-pkgs-action' # ref=v1.4.3
[gds/gds] ⭐ Run Pre Install prerequisites
[gds/gds]   ☁  git clone 'https://github.com/actions/cache' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/upload-artifact' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/cache' # ref=v4
[gds/gds]   ✅  Success - Pre Install prerequisites [2.366585339s]
[gds/gds]   ☁  git clone 'https://github.com/actions/checkout' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/checkout' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/setup-python' # ref=v5
[gds/gds]   ☁  git clone 'https://github.com/actions/upload-artifact' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/upload-artifact' # ref=v4
[gds/gds]   ☁  git clone 'https://github.com/actions/upload-artifact' # ref=v4
[gds/gds]   ✅  Success - Pre Build GDS [7.054316732s]
[gds/gds] ⭐ Run Main checkout repo
[gds/gds]   🐳  docker cp src=/home/gonsolo/work/TinyQV-GPU/. dst=/home/gonsolo/work/TinyQV-GPU
[gds/gds]   ✅  Success - Main checkout repo [34.099029ms]
[gds/gds] ⭐ Run Main Build GDS
[gds/gds]   🐳  docker cp src=/home/gonsolo/.cache/act/TinyTapeout-tt-gds-action@ttsky25a/ dst=/var/run/act/actions/TinyTapeout-tt-gds-action@ttsky25a/
[gds/gds] ⭐ Run Main Set up environment variables
[gds/gds]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-0.sh] user= workdir=
[gds/gds]   ✅  Success - Main Set up environment variables [85.162083ms]
[gds/gds]   ⚙  ::set-env:: OPENLANE2_TAG=2.2.9
[gds/gds]   ⚙  ::set-env:: PDK_ROOT=/home/runner/pdk
[gds/gds]   ⚙  ::set-env:: PDK=sky130A
[gds/gds]   ⚙  ::set-env:: TT_ARGS=
[gds/gds] ⭐ Run Main Install prerequisites
[gds/gds]   🐳  docker cp src=/home/gonsolo/.cache/act/awalsh128-cache-apt-pkgs-action@v1.4.3/ dst=/var/run/act/actions/awalsh128-cache-apt-pkgs-action@v1.4.3/
[gds/gds] ⭐ Run Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \
  ~/cache-apt-pkgs \
  "$VERSION" \
  "$EXEC_INSTALL_SCRIPTS" \
  "$DEBUG" \
  "$PACKAGES"
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV
[gds/gds]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-1-composite-pre-cache.sh] user= workdir=
| 13:17:42.354 Normalizing package list...
| 13:17:42.395 done
| 13:17:42.400 Validating action arguments (version='ttihp25b', packages='')...
| 13:17:42.404 aborted
| 13:17:42.406 Packages argument cannot be empty.
[gds/gds]   ❌  Failure - Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \
  ~/cache-apt-pkgs \
  "$VERSION" \
  "$EXEC_INSTALL_SCRIPTS" \
  "$DEBUG" \
  "$PACKAGES"
echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV
 [149.070778ms]
[gds/gds] exitcode '3': failure
[gds/gds]   ⚙  ::set-output:: all-package-version-list=
[gds/gds]   ⚙  ::set-output:: cache-hit=false
[gds/gds]   ⚙  ::set-output:: package-version-list=
[gds/gds]   ❌  Failure - Main Install prerequisites [477.235792ms]

Additional information

No response

Originally created by @gonsolo on GitHub (Sep 16, 2025). Original GitHub issue: https://github.com/nektos/act/issues/5931 ### Bug report info ```plain text I am running: act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345 --artifact-server-path /tmp/artifacts which has: - name: Build GDS uses: TinyTapeout/tt-gds-action@ttsky25a with: pdk: sky130 tools-ref: ttsky25a in this action there is: # Install packages for 'Render PNG from GDS' step and ghdl to process VHDL files: - name: Install prerequisites uses: awalsh128/cache-apt-pkgs-action@v1.4.3 with: packages: librsvg2-bin pngquant ghdl-llvm # librsvg2-bin for rsvg-convert; pngquant for heavy PNG compression. version: ttihp25b # I think naming a version builds a reusable packages cache for that name. but this fails with: [gds/gds] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-1-composite-pre-cache.sh] user= workdir= | 13:17:42.354 Normalizing package list... | 13:17:42.395 done | 13:17:42.400 Validating action arguments (version='ttihp25b', packages='')... | 13:17:42.404 aborted | 13:17:42.406 Packages argument cannot be empty. [gds/gds] ❌ Failure - Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \ ~/cache-apt-pkgs \ "$VERSION" \ "$EXEC_INSTALL_SCRIPTS" \ "$DEBUG" \ "$PACKAGES" echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV so the packages are not correctly handled. ``` ### Command used with act ```sh act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345 --artifact-server-path /tmp/artifacts ``` ### Describe issue act fails to correctly execute a complicated workflow. ### Link to GitHub repository https://github.com/gonsolo/TinyQV-GPU/blob/main/.github/workflows/gds.yaml ### Workflow content ```yml gonsolo TinyQV-GPU:cat .github/workflows/gds.yaml name: gds on: push: workflow_dispatch: jobs: gds: runs-on: ubuntu-24.04 steps: - name: checkout repo uses: actions/checkout@v4 with: submodules: recursive - name: Build GDS uses: TinyTapeout/tt-gds-action@ttsky25a with: pdk: sky130 tools-ref: ttsky25a precheck: needs: gds runs-on: ubuntu-24.04 steps: - name: Run Tiny Tapeout Precheck uses: TinyTapeout/tt-gds-action/precheck@ttsky25a with: pdk: sky130 tools-ref: ttsky25a gl_test: needs: gds runs-on: ubuntu-24.04 steps: - name: checkout repo uses: actions/checkout@v4 with: submodules: recursive - name: GL test uses: TinyTapeout/tt-gds-action/gl_test@ttsky25a with: pdk: sky130 viewer: needs: gds runs-on: ubuntu-24.04 permissions: pages: write # to deploy to Pages id-token: write # to verify the deployment originates from an appropriate source steps: - uses: TinyTapeout/tt-gds-action/viewer@ttsky25a with: pdk: sky130 ``` ### Relevant log output ```sh act --workflows .github/workflows/gds.yaml --platform ubuntu-24.04=catthehacker/ubuntu:act-24.04 --env ACTIONS_RUNTIME_TOKEN=12345 INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock' [gds/gds] ⭐ Run Set up job [gds/gds] 🚀 Start image=catthehacker/ubuntu:act-24.04 [gds/gds] 🐳 docker pull image=catthehacker/ubuntu:act-24.04 platform= username= forcePull=true [gds/gds] 🐳 docker create image=catthehacker/ubuntu:act-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host" [gds/gds] 🐳 docker run image=catthehacker/ubuntu:act-24.04 platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host" [gds/gds] 🐳 docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir= [gds/gds] ✅ Success - Set up job [gds/gds] ☁ git clone 'https://github.com/TinyTapeout/tt-gds-action' # ref=ttsky25a [gds/gds] ⭐ Run Pre Build GDS [gds/gds] ☁ git clone 'https://github.com/awalsh128/cache-apt-pkgs-action' # ref=v1.4.3 [gds/gds] ⭐ Run Pre Install prerequisites [gds/gds] ☁ git clone 'https://github.com/actions/cache' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/cache' # ref=v4 [gds/gds] ✅ Success - Pre Install prerequisites [2.366585339s] [gds/gds] ☁ git clone 'https://github.com/actions/checkout' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/checkout' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/setup-python' # ref=v5 [gds/gds] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4 [gds/gds] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4 [gds/gds] ✅ Success - Pre Build GDS [7.054316732s] [gds/gds] ⭐ Run Main checkout repo [gds/gds] 🐳 docker cp src=/home/gonsolo/work/TinyQV-GPU/. dst=/home/gonsolo/work/TinyQV-GPU [gds/gds] ✅ Success - Main checkout repo [34.099029ms] [gds/gds] ⭐ Run Main Build GDS [gds/gds] 🐳 docker cp src=/home/gonsolo/.cache/act/TinyTapeout-tt-gds-action@ttsky25a/ dst=/var/run/act/actions/TinyTapeout-tt-gds-action@ttsky25a/ [gds/gds] ⭐ Run Main Set up environment variables [gds/gds] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-0.sh] user= workdir= [gds/gds] ✅ Success - Main Set up environment variables [85.162083ms] [gds/gds] ⚙ ::set-env:: OPENLANE2_TAG=2.2.9 [gds/gds] ⚙ ::set-env:: PDK_ROOT=/home/runner/pdk [gds/gds] ⚙ ::set-env:: PDK=sky130A [gds/gds] ⚙ ::set-env:: TT_ARGS= [gds/gds] ⭐ Run Main Install prerequisites [gds/gds] 🐳 docker cp src=/home/gonsolo/.cache/act/awalsh128-cache-apt-pkgs-action@v1.4.3/ dst=/var/run/act/actions/awalsh128-cache-apt-pkgs-action@v1.4.3/ [gds/gds] ⭐ Run Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \ ~/cache-apt-pkgs \ "$VERSION" \ "$EXEC_INSTALL_SCRIPTS" \ "$DEBUG" \ "$PACKAGES" echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV [gds/gds] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-1-composite-pre-cache.sh] user= workdir= | 13:17:42.354 Normalizing package list... | 13:17:42.395 done | 13:17:42.400 Validating action arguments (version='ttihp25b', packages='')... | 13:17:42.404 aborted | 13:17:42.406 Packages argument cannot be empty. [gds/gds] ❌ Failure - Main ${GITHUB_ACTION_PATH}/pre_cache_action.sh \ ~/cache-apt-pkgs \ "$VERSION" \ "$EXEC_INSTALL_SCRIPTS" \ "$DEBUG" \ "$PACKAGES" echo "CACHE_KEY=$(cat ~/cache-apt-pkgs/cache_key.md5)" >> $GITHUB_ENV [149.070778ms] [gds/gds] exitcode '3': failure [gds/gds] ⚙ ::set-output:: all-package-version-list= [gds/gds] ⚙ ::set-output:: cache-hit=false [gds/gds] ⚙ ::set-output:: package-version-list= [gds/gds] ❌ Failure - Main Install prerequisites [477.235792ms] ``` ### Additional information _No response_
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1290
No description provided.