datahaven/.github/workflows/release.yml
Ahmad Kaouk d5390be43d
ci: publish validator-set-submitter Docker image on release (#467)
## Summary
- Add a new reusable workflow
(`task-docker-release-validator-set-submitter.yml`) to build and publish
the `datahavenxyz/validator-set-submitter` Docker image to Docker Hub
- Wire it into the existing `release.yml` so the submitter image is
published on every push to main

## Details

- **Triggers**: `workflow_call` (from `release.yml`) and
`workflow_dispatch` for manual builds with a custom label/branch
- **Tagging**: `latest` + `sha-<short>` on CI pushes; custom label on
manual dispatch
- **Build**: Uses the Dockerfile at
`test/tools/validator-set-submitter/Dockerfile`
- **Smoke test**: Pulls the published image and runs `--help` to verify
it starts correctly
- **Environment**: Requires `production` environment approval before
publishing

## Test plan
- [ ] Trigger the release workflow manually via `workflow_dispatch` and
verify the `datahavenxyz/validator-set-submitter` image is published to
Docker Hub
- [ ] Verify the smoke test (`--help`) passes in CI
- [ ] Merge to main and confirm the submitter image is published
2026-03-13 13:45:41 +01:00

38 lines
1.1 KiB
YAML

#! Release workflow for DataHaven Repository
#!
#! This workflow runs when code is merged to main, publishing Docker images
#! to Docker Hub. Validation checks are handled by CI.yml on pull requests.
#!
#! Since PRs require:
#! 1. Branch to be up-to-date with main before merging
#! 2. All CI checks to pass
#! Re-running validation on main would be redundant.
name: Release
on:
workflow_dispatch:
push:
branches:
- main
permissions:
contents: read
packages: write # Required for docker build release jobs
concurrency:
group: release-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
docker-build-release:
uses: ./.github/workflows/task-docker-release.yml
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
validator-set-submitter-docker-build-release:
uses: ./.github/workflows/task-docker-release-validator-set-submitter.yml
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}