--- name: Promote AWX Operator image on: release: types: [published] workflow_dispatch: inputs: tag_name: description: 'Name for the tag of the release.' required: true quay_registry: description: 'Quay registry to push to.' default: 'quay.io/ansible' env: QUAY_REGISTRY: ${{ vars.QUAY_REGISTRY }} jobs: promote: runs-on: ubuntu-latest steps: - name: Set GitHub Env vars for workflow_dispatch event if: ${{ github.event_name == 'workflow_dispatch' }} run: | echo "TAG_NAME=${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV echo "QUAY_REGISTRY=${{ github.event.inputs.quay_registry }}" >> $GITHUB_ENV - name: Set GitHub Env vars if release event if: ${{ github.event_name == 'release' }} run: | echo "TAG_NAME=${{ github.event.release.tag_name }}" >> $GITHUB_ENV - name: Fail if QUAY_REGISTRY not set run: | if [[ -z "${{ env.QUAY_REGISTRY }}" ]]; then echo "QUAY_REGISTRY not set. Please set QUAY_REGISTRY in variable GitHub Actions variables." exit 1 fi - uses: actions/checkout@v4 with: depth: 0 - name: Log into registry ghcr.io uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log into registry quay.io uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 with: registry: ${{ env.QUAY_REGISTRY }} username: ${{ secrets.QUAY_USER }} password: ${{ secrets.QUAY_TOKEN }} - name: Pull Tagged Staged Image and Publish to quay.io run: | docker buildx imagetools create \ ghcr.io/${{ github.repository }}:${{ env.TAG_NAME }} \ --tag ${{ env.QUAY_REGISTRY }}/awx-operator:${{ env.TAG_NAME }} - name: Pull Staged Image and Publish to quay.io/${{ github.repository }}:latest run: | docker buildx imagetools create \ ghcr.io/${{ github.repository }}:${{ env.TAG_NAME }} \ --tag ${{ env.QUAY_REGISTRY }}/awx-operator:latest