--- /dev/null
+---
+name: Build images for tags
+
+on:
+ push:
+ tags:
+ - 'auth-*'
+ - 'dnsdist-*'
+ - 'rec-*'
+
+permissions:
+ actions: read
+ contents: read
+
+jobs:
+ prepare:
+ runs-on: ubuntu-22.04
+ outputs:
+ image-name-suffix: ${{ steps.get-image-version.outputs.version }}
+ image-tag: ${{ steps.get-image-tag.outputs.tag }}
+ image-description-suffix: ${{ steps.get-image-description.outputs.description }}
+ steps:
+ - run: echo "version=$(echo '${{ github.ref_name }}' | cut -d '-' -f 2 | awk -F'.' '{print $1$2}')" >> $GITHUB_OUTPUT
+ id: get-image-version
+ - run: echo "tag=$(echo '${{ github.ref_name }}' | cut -d '-' -f 2-)" >> $GITHUB_OUTPUT
+ id: get-image-tag
+ - run: echo "description=$(echo '${{ github.ref_name }}' | cut -d '-' -f 2- | awk -F'.' '{print "v"$1"."$2".x"}')" >> $GITHUB_OUTPUT
+ id: get-image-description
+
+ call-build-image-auth:
+ uses: PowerDNS/pdns/.github/workflows/build-docker-images.yml@master
+ if: startsWith(github.ref_name, 'auth')
+ needs: prepare
+ with:
+ product: auth
+ ref: ${{ github.ref_name }}
+ image-name: pdns-auth-${{ needs.prepare.outputs.image-name-suffix }}
+ image-tags: |-
+ latest
+ ${{ needs.prepare.outputs.image-tag }}
+ image-description: 'PowerDNS Authoritative Server ${{ needs.prepare.outputs.image-description-suffix }}'
+ platforms: linux/amd64,linux/arm64/v8
+ build-args: |-
+ DOCKER_FAKE_RELEASE=YES
+ push: true
+ secrets:
+ DOCKERHUB_ORGANIZATION_NAME: ${{ secrets.DOCKERHUB_ORGANIZATION_NAME }}
+ DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
+ DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ call-build-image-recursor:
+ uses: PowerDNS/pdns/.github/workflows/build-docker-images.yml@master
+ if: startsWith(github.ref_name, 'rec')
+ needs: prepare
+ with:
+ product: recursor
+ ref: ${{ github.ref_name }}
+ image-name: pdns-recursor-${{ needs.prepare.outputs.image-name-suffix }}
+ image-tags: |-
+ latest
+ ${{ needs.prepare.outputs.image-tag }}
+ image-description: 'PowerDNS Recursor ${{ needs.prepare.outputs.image-description-suffix }}'
+ platforms: linux/amd64,linux/arm64/v8
+ build-args: |-
+ DOCKER_FAKE_RELEASE=YES
+ push: true
+ secrets:
+ DOCKERHUB_ORGANIZATION_NAME: ${{ secrets.DOCKERHUB_ORGANIZATION_NAME }}
+ DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
+ DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ call-build-image-dnsdist:
+ uses: PowerDNS/pdns/.github/workflows/build-docker-images.yml@master
+ if: startsWith(github.ref_name, 'dnsdist')
+ needs: prepare
+ with:
+ product: dnsdist
+ ref: ${{ github.ref_name }}
+ image-name: dnsdist-${{ needs.prepare.outputs.image-name-suffix }}
+ image-tags: |-
+ latest
+ ${{ needs.prepare.outputs.image-tag }}
+ image-description: 'PowerDNS DNSdist ${{ needs.prepare.outputs.image-description-suffix }}'
+ platforms: linux/amd64,linux/arm64/v8
+ build-args: |-
+ DOCKER_FAKE_RELEASE=YES
+ push: true
+ secrets:
+ DOCKERHUB_ORGANIZATION_NAME: ${{ secrets.DOCKERHUB_ORGANIZATION_NAME }}
+ DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
+ DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}