Run the development deployment workflow
The .github/workflows/dev.yml workflow tests, packages, and deploys the API,
web app, and documentation site to the development environment.
Trigger the workflow
The workflow runs automatically when commits reach the dev branch. To start
it manually:
- Open the repository's Actions tab in GitHub.
- Select hetzner dev (api + web + docs).
- Choose Run workflow and select the
devbranch. - Follow the run until every required job completes.
Understand the flow
The workflow performs these stages:
test-apiinstalls the lockfile and runs the API tests on Node 25.test-webinstalls the lockfile and runs the web tests on Node 20.- After both test jobs pass, separate jobs build the API, web, and docs Docker
images and push their
latesttags to Amazon ECR. - The deploy job connects to the Hetzner host, pulls each successful image, replaces the corresponding container, and attaches it to the shared Docker network behind Traefik.
The deploy job runs only when both tests and all three image builds succeed.
Required repository secrets
The workflow reads AWS OIDC, ECR repository, Hetzner SSH, and application configuration values from GitHub Actions secrets. Do not print or copy secret values into workflow logs or documentation. When a job reports a missing value, update the repository or environment secret in GitHub and re-run only after the configuration is complete.
Re-run a failed deployment
Fix the failing test, image build, credential, or host condition first. Then use GitHub's Re-run failed jobs action. A deployment retry reuses the images associated with that workflow run; start a new run when the source or image must change.