diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index f463bf3..92b9be3 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -7,25 +7,33 @@ on: branches: [ "master" ] jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag ghcr.io/havenweb/haven:$(echo $GITHUB_SHA | head -c7) --tag ghcr.io/havenweb/haven:latest - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Push image to GitHub - if: github.ref == 'refs/heads/master' - run: | - docker push ghcr.io/havenweb/haven:$(echo $GITHUB_SHA | head -c7) - docker push ghcr.io/havenweb/haven:latest + - name: Checkout + uses: actions/checkout@v4 + + - name: Get tag + id: get_tag + run: echo "tagname=$(echo $GITHUB_SHA | head -c7)" >> $GITHUB_OUTPUT + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push image + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64, linux/arm64 + push: ${{ github.ref == 'refs/heads/master' }} + tags: ghcr.io/havenweb/haven:${{ steps.get_tag.outputs.tagname }}, ghcr.io/havenweb/haven:latest