mirror of
https://github.com/ansible/awx.git
synced 2026-02-03 10:38:15 -03:30
Perform a git reset --hard before attempting to release awxkit to pypi. We found that something new in the process was causing an unexpected behavior if the git tree had any changes inside it. It would cause a devel version to be created and used as part of the upload which pypi was refusing. Collections can not easly be deleted from galaxy so if we have to rerun a job because of a pypi or quay failure we don't want to try and upload the collection again.
83 lines
3.2 KiB
YAML
83 lines
3.2 KiB
YAML
---
|
|
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:
|
|
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
|
|
|