--- name: Promote Release env: LC_ALL: "C.UTF-8" # prevent ERROR: Ansible could not initialize the preferred locale: unsupported locale setting on: release: types: [published] jobs: promote: if: endsWith(github.repository, '/awx') runs-on: ubuntu-latest steps: - name: Checkout awx uses: actions/checkout@v2 - name: Get python version from Makefile run: echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV - name: Install python ${{ env.py_version }} uses: actions/setup-python@v2 with: python-version: ${{ env.py_version }} - name: Install dependencies run: | python${{ env.py_version }} -m pip install wheel twine setuptools-scm - name: Set official collection namespace run: echo collection_namespace=awx >> $GITHUB_ENV if: ${{ github.repository_owner == 'ansible' }} - name: Set unofficial collection namespace run: echo collection_namespace=${{ github.repository_owner }} >> $GITHUB_ENV if: ${{ github.repository_owner != 'ansible' }} - name: Build collection and publish to galaxy run: | COLLECTION_TEMPLATE_VERSION=true COLLECTION_NAMESPACE=${{ env.collection_namespace }} make build_collection if [ "$(curl --head -sw '%{http_code}' https://galaxy.ansible.com/download/${{ env.collection_namespace }}-awx-${{ github.event.release.tag_name }}.tar.gz | tail -1)" == "302" ] ; then \ echo "Galaxy release already done"; \ else \ ansible-galaxy collection publish \ --token=${{ secrets.GALAXY_TOKEN }} \ awx_collection_build/${{ env.collection_namespace }}-awx-${{ github.event.release.tag_name }}.tar.gz; \ fi - name: Set official pypi info run: echo pypi_repo=pypi >> $GITHUB_ENV if: ${{ github.repository_owner == 'ansible' }} - name: Set unofficial pypi info run: echo pypi_repo=testpypi >> $GITHUB_ENV if: ${{ github.repository_owner != 'ansible' }} - name: Build awxkit and upload to pypi run: | git reset --hard cd awxkit && python3 setup.py bdist_wheel twine upload \ -r ${{ env.pypi_repo }} \ -u ${{ secrets.PYPI_USERNAME }} \ -p ${{ secrets.PYPI_PASSWORD }} \ dist/* - name: Log in to GHCR run: | echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Log in to Quay run: | echo ${{ secrets.QUAY_TOKEN }} | docker login quay.io -u ${{ secrets.QUAY_USER }} --password-stdin - name: Re-tag and promote awx image run: | docker pull ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} docker tag ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} quay.io/${{ github.repository }}:${{ github.event.release.tag_name }} docker tag ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }} quay.io/${{ github.repository }}:latest docker push quay.io/${{ github.repository }}:${{ github.event.release.tag_name }} docker push quay.io/${{ github.repository }}:latest docker pull ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }} docker tag ghcr.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }} quay.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }} docker push quay.io/${{ github.repository_owner }}/awx-ee:${{ github.event.release.tag_name }}