name: Build and Push Astro Docker Image on: push: branches: - main - 'release/**' env: IMAGE_REGISTRY: ghcr.io IMAGE_OWNER: fluttershub IMAGE_NAME: homepage jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to ghcr.io uses: docker/login-action@v3 with: registry: ${{ env.IMAGE_REGISTRY }} username: ${{ env.IMAGE_OWNER }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker image with commit SHA tag run: | docker build -t ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} . - name: Tag image as latest run: | docker tag ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:latest - name: Push both tags to Docker Hub run: | docker push ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} docker push ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:latest