--- 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@v3 with: depth: 0 - name: Log into registry ghcr.io uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log into registry quay.io uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.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 - name: Release Helm chart run: | ansible-playbook ansible/helm-release.yml -v \ -e operator_image=${{ env.QUAY_REGISTRY }}/awx-operator \ -e chart_owner=${{ github.repository_owner }} \ -e tag=${{ env.TAG_NAME }} \ -e gh_token=${{ secrets.GITHUB_TOKEN }} \ -e gh_user=${{ github.actor }} \ -e repo_type=https