GitHub Action
Applies to SDK 0.16+ · Last updated: 2026-06-12
The agentnode/publish@v1 GitHub Action automates pack publishing from your CI/CD pipeline. Push a tag or create a release, and the action validates, scans, signs, and publishes your pack automatically.
Basic workflow
.github/workflows/publish.ymlyaml
name: Publish to AgentNode
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r requirements.txt
- name: Publish pack
uses: agentnode/publish@v1
with:
api-key: ${{ secrets.AGENTNODE_API_KEY }}Action inputs
| Input | Required | Default | Description |
|---|---|---|---|
| api-key | Yes | -- | Your AgentNode API key. Store as a repository secret. |
| dry-run | No | false | Run validation and scanning without publishing. Set to "true" for PR checks. |
| directory | No | . | Path to the pack directory containing agentnode.yaml. |
Dry-run on pull requests
Use dry-run mode to validate manifests on every pull request without publishing:
.github/workflows/validate.ymlyaml
name: Validate AgentNode Pack
on:
pull_request:
paths:
- "agentnode.yaml"
- "src/**"
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate pack
uses: agentnode/publish@v1
with:
api-key: ${{ secrets.AGENTNODE_API_KEY }}
dry-run: trueExample output
github actions log
Run agentnode/publish@v1
Validating agentnode.yaml...
Manifest syntax OK
Capability IDs OK (1 tool, 0 resources)
Permissions OK (network: unrestricted)
Entrypoint OK (github_integration_pack.tool)
Compatibility OK (3 frameworks)
Running security scan...
Bandit scan passed (0 issues)
Dependency audit passed
Publishing github-integration-pack@1.0.0...
Uploading package done
Signing package done (Ed25519)
Indexing capabilities done
Published: https://agentnode.net/packages/github-integration-packTriggering on tags
If you prefer tag-based releases instead of GitHub Releases:
.github/workflows/publish-on-tag.ymlyaml
name: Publish to AgentNode
on:
push:
tags:
- "v*"
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Publish pack
uses: agentnode/publish@v1
with:
api-key: ${{ secrets.AGENTNODE_API_KEY }}