name: Build and Publish on: push: branches: - main tags: - "v*.*.*" pull_request: jobs: build-alpine: name: Build Alpine Docker image and push to repositories runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: | buddyspencer/gickup ghcr.io/${{ github.actor }}/gickup tags: | type=ref,event=pr type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha type=raw,value=latest,enable=${{ github.ref_type == 'tag' }} type=raw,value=dev,enable=${{ github.ref == 'refs/heads/main' }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to Github Packages if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHCR_PAT }} - name: Build image and push to Docker Hub and GitHub Container Registry uses: docker/build-push-action@v6 with: context: . tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: ${{ github.event_name != 'pull_request' }} platforms: linux/amd64, linux/arm64/v8, linux/arm/v7, linux/arm/v6 - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} build-ubuntu: name: Build Ubuntu Docker image and push to repositories runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: | buddyspencer/gickup ghcr.io/${{ github.actor }}/gickup tags: | type=ref,event=pr type=semver,pattern=ubuntu-{{version}} type=semver,pattern=ubuntu-{{major}}.{{minor}} type=semver,pattern=ubuntu-{{major}} type=raw,value=ubuntu-latest,enable=${{ github.ref_type == 'tag' }} type=raw,value=ubuntu-dev,enable=${{ github.ref == 'refs/heads/main' }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to Github Packages if: github.event_name != 'pull_request' uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHCR_PAT }} - name: Build image and push to Docker Hub and GitHub Container Registry uses: docker/build-push-action@v6 with: context: . file: Dockerfile.ubuntu tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: ${{ github.event_name != 'pull_request' }} platforms: linux/amd64, linux/arm64/v8, linux/arm/v7 - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}