diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 31e24ce..fa8e608 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -4,6 +4,8 @@ on: push: branches: - main + tags: + - 'v*' jobs: build-and-test: @@ -11,31 +13,43 @@ jobs: permissions: contents: read - packages: write # Added permission to push Docker images + packages: write steps: - name: Checkout code - uses: actions/checkout@cbb722410c2e876e24abbe8de2cc27693e501dcb # v2 - - name: Set up Docker - uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1 + uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 + with: + fetch-depth: 0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3 + - name: Set up Go - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v2 + uses: actions/setup-go@bfdd3570ce990073878bf10f6b2d79082de49492 # v2 with: go-version: '1.23' - - name: Docker - run: make docker-build + - name: Extract Git Tag + if: startsWith(github.ref, 'refs/tags/') + run: echo "GIT_TAG=${{ github.ref_name }}" >> $GITHUB_ENV + + - name: Docker Build + run: | + TAG="${GIT_TAG:-latest}" + docker build \ + -t ghcr.io/bitbomdev/minefield:latest \ + -t ghcr.io/bitbomdev/minefield:"${TAG}" \ + . - name: Log in to GHCR - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v2 + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Run build - run: make docker-build - - - name: Push Docker images + - name: Push Docker Images run: | - docker push ghcr.io/bitbomdev/minefield:latest \ No newline at end of file + TAG=${GIT_TAG:-latest} + docker push ghcr.io/bitbomdev/minefield:latest + docker push ghcr.io/bitbomdev/minefield:${TAG}