Is your feature request related to a problem? Please describe.
The current build_and_deploy.yml workflow pushes to Docker Hub, which requires maintaining separate creds (DOCKERHUB_USERNAME, DOCKERHUB_TOKEN) as repo secrets. The image tag uses staging, which doesn't match the environment name (beta / api-beta). If multiple PRs merge to staging in quick succession, multiple builds and deploys run simultaneously, racing against each other on the DigitalOcean deploy API.
Describe the solution you'd like
- Use GHCR instead of Docker Hub (as the default at least, potentially mirror on docker hub down the road).
- Add a concurrency protection to this to ensure reliable builds.
- Add filters for docs-only PRs.
- Update the DO deploy to use GHCR instead.
Describe alternatives you've considered
- Stay on docker hub - works but spans +1 services, and includes an individual's tag (eepmoody) as part of the container repo.
Additional context
Post issue resolution, PRODUCTION will still build from docker hub. That's future work. This issue is scoped to be only beta deploys.
Is your feature request related to a problem? Please describe.
The current build_and_deploy.yml workflow pushes to Docker Hub, which requires maintaining separate creds (DOCKERHUB_USERNAME, DOCKERHUB_TOKEN) as repo secrets. The image tag uses staging, which doesn't match the environment name (beta / api-beta). If multiple PRs merge to staging in quick succession, multiple builds and deploys run simultaneously, racing against each other on the DigitalOcean deploy API.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Post issue resolution, PRODUCTION will still build from docker hub. That's future work. This issue is scoped to be only beta deploys.