Skip to content

cd-prod

cd-prod #2

name: cd-prod
on:
workflow_dispatch:
inputs:
tag_name:
description: Write tag for deploy
required: true
jobs:
ci-tests:
uses: ./.github/workflows/ci-tests.yaml
push_to_registry:
name: Push Docker image to Docker Hub
needs: [ci-tests]
if: (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != '')
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
id: push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
${{ secrets.DOCKER_USERNAME }}/${{ github.event.repository.name }}:${{ github.event.inputs.tag_name }}
- name: Trigger watchtower to update container(s)
shell: bash
run: |
curl -H "Authorization: Bearer ${{ secrets.WATCHTOWER_HTTP_API_TOKEN }}" ${{ secrets.WATCHTOWER_UPDATE_ENDPOINT }}