diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e398931..1380b95 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,24 +1,42 @@ -name: Build Docker image +name: Build and Publish Docker Image on: push: pull_request: + workflow_dispatch: jobs: - build: + build-publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - - name: Build the Docker image - run: docker build . --tag mitmproxy-pretendo + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Save the Docker image - run: docker save mitmproxy-pretendo -o mitmproxy-pretendo.tar + - name: Log into the GitHub container registry + if: ${{ github.event != 'pull_request' && github.ref == 'refs/heads/main' }} + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/${{ github.repository }} - - name: Upload the Docker image - uses: actions/upload-artifact@v4 + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v5 with: - name: mitmproxy-pretendo-docker-image-${{ github.sha }} - path: mitmproxy-pretendo.tar + context: . + push: ${{ github.event != 'pull_request' && github.ref == 'refs/heads/main' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max