A multi-registry container push. No language package; image only.
{
"project": {
"name": "my-service",
"version_source": "git-tag"
},
"targets": {
"ghcr": {
"enabled": true,
"auth": "oidc",
"image": "ghcr.io/my-org/my-service",
"tags": ["1.4.0", "latest"]
},
"dockerhub": {
"enabled": true,
"auth": "token",
"username": "my-org",
"image": "my-org/my-service",
"tags": ["1.4.0", "latest"]
},
"aws-ecr": {
"enabled": true,
"auth": "oidc",
"registry": "123456789012.dkr.ecr.us-east-1.amazonaws.com",
"image": "my-service",
"tags": ["1.4.0", "latest"]
}
},
"policies": {
"default_dry_run": true,
"continue_on_error": false
}
}name: release
on: { push: { tags: ["v*"] } }
permissions:
id-token: write
contents: read
packages: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123456789012:role/release-kit-pusher
aws-region: us-east-1
- uses: actions/setup-python@v5
with: { python-version: "3.11" }
- run: pip install simtabi-release-kit
- run: release-kit publish --apply- Docker Hub doesn't support OIDC. Set
DOCKERHUB_TOKENin the workflow secrets and pass--allow-token-authif your policies block silent token fallback. buildxis required so--pushwrites to all three registries in one build.- For multi-arch, add
--platform linux/amd64,linux/arm64via the target's extras (the DockerPushMixin honorsplatforms).