Workflow Inputs

The package-agent-extension workflow accepts these inputs:

All Inputs

InputRequiredDefaultDescription
manifestNo./Cargo.tomlPath to Cargo.toml
muslYes-Use musl for Linux builds (static linking)
extra_argsNo[]Additional args to append (JSON array)
extra_envNo{}Additional env vars to merge (JSON object)

manifest

Path to the Cargo.toml file. Use this for workspaces or non-standard layouts:

with:
  manifest: ./crates/my-extension/Cargo.toml
  musl: true

musl

Required. Controls whether Linux builds use musl (static linking) or glibc (dynamic linking).

Recommended: musl: true for maximum portability—binaries work on any Linux system.

Use musl: false only if you need glibc-specific features.

extra_args

Additional arguments appended to the args array from Cargo.toml. Passed as a JSON array string:

with:
  musl: true
  extra_args: '["--feature", "extra"]'

If Cargo.toml has args = ["--acp"] and you pass extra_args: '["--verbose"]', the final args are ["--acp", "--verbose"].

extra_env

Additional environment variables merged with the env object from Cargo.toml. Passed as a JSON object string:

with:
  musl: true
  extra_env: '{"API_KEY": "${{ secrets.API_KEY }}"}'

This is the recommended way to inject secrets—they stay in CI and never appear in Cargo.toml.

If both Cargo.toml and extra_env define the same variable, extra_env wins.

Complete Example

jobs:
  build:
    permissions:
      contents: write
    uses: symposium-dev/package-agent-extension/.github/workflows/build.yml@v1
    with:
      manifest: ./Cargo.toml
      musl: true
      extra_args: '["--verbose"]'
      extra_env: '{"API_KEY": "${{ secrets.API_KEY }}", "DEBUG": "true"}'
    secrets: inherit