Skip to content

Gitea Actions does not expand expressions in jobs.<job>.container.volumes #38138

@jotego

Description

@jotego

Gitea Version

1.26.1

What happened?

I tried to use repository secrets as the host-side bind mount paths:

jobs:
  simulate:
    runs-on: ubuntu-22.04
    container:
      image: jotego/simulator
      volumes:
        - ${{ secrets.MAME }}:/root/.mame/roms:ro
        - ${{ secrets.REGRUNS }}:/nobackup/regression
    steps:
      - name: Check paths
        run: |
          echo "MAME=${{ secrets.MAME }}"
          echo "REGRUNS=${{ secrets.REGRUNS }}"

The secrets are available in step/env expression contexts, but they are not expanded in container.volumes.

The runner log shows the volume sources remain literal:

[${{ secrets.MAME }}] is not a valid volume, will be ignored
[${{ secrets.REGRUNS }}] is not a valid volume, will be ignored

This means the job container starts without the expected bind mounts.

Expected behavior

The volume definitions should be evaluated before creating the job container, so this:

volumes:
  - ${{ secrets.MAME }}:/root/.mame/roms:ro

binds the host path stored in secrets.MAME into /root/.mame/roms.

Alternatively, if expressions are intentionally unsupported in container.volumes, this limitation should be documented clearly.

Actual behavior

The expressions are passed through literally to the runner/container setup. The runner then rejects them as invalid volume paths.

How are you running Gitea?

Gitea is deployed with Docker Compose on a Synology NAS running DSM. It uses the official Gitea Docker image and SQLite as the database.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions