From 06fb3b5ea11f49011a646a4ec6d044c2ae596836 Mon Sep 17 00:00:00 2001 From: James Paterni Date: Thu, 8 May 2025 23:07:12 -0400 Subject: [PATCH] add automatic docker building --- .github/workflows/docker.yml | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..1f504d3 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,49 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + tags: + - 'v*.*.*' + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract version tag + id: version + run: | + if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then + echo "VERSION_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT + fi + + - name: Set image tags + id: tags + run: | + IMAGE_NAME=${{ secrets.DOCKER_IMAGE_NAME }} + TAGS="${IMAGE_NAME}:latest" + if [ -n "${{ steps.version.outputs.VERSION_TAG }}" ]; then + TAGS="$TAGS,${IMAGE_NAME}:${{ steps.version.outputs.VERSION_TAG }}" + fi + echo "tags=$TAGS" >> $GITHUB_OUTPUT + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.tags.outputs.tags }}