Python Publish Release #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# WARNING: DO NOT EDIT! | |
# | |
# This file was generated by plugin_template, and is managed by it. Please use | |
# './plugin-template --github pulp_python' to update this file. | |
# | |
# For more info visit https://github.com/pulp/plugin_template | |
--- | |
name: "Python Publish Release" | |
on: | |
push: | |
tags: | |
- "[0-9]+.[0-9]+.[0-9]+" | |
defaults: | |
run: | |
working-directory: "pulp_python" | |
jobs: | |
build: | |
uses: "./.github/workflows/build.yml" | |
build-bindings-docs: | |
needs: | |
- "build" | |
runs-on: "ubuntu-latest" | |
# Install scripts expect TEST to be set, 'docs' is most appropriate even though we don't run tests | |
env: | |
TEST: "docs" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
path: "pulp_python" | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
repository: "pulp/pulp-openapi-generator" | |
path: "pulp-openapi-generator" | |
- uses: "actions/setup-python@v5" | |
with: | |
python-version: "3.11" | |
- uses: "actions/download-artifact@v4" | |
with: | |
name: "plugin_package" | |
path: "pulp_python/dist/" | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "2.6" | |
- name: "Install python dependencies" | |
run: | | |
echo ::group::PYDEPS | |
pip install towncrier twine wheel httpie docker netaddr boto3 ansible mkdocs | |
echo "HTTPIE_CONFIG_DIR=$GITHUB_WORKSPACE/pulp_python/.ci/assets/httpie/" >> $GITHUB_ENV | |
echo ::endgroup:: | |
# Building the bindings and docs requires accessing the OpenAPI specs endpoint, so we need to | |
# setup the Pulp instance. | |
- name: "Before Install" | |
run: | | |
.github/workflows/scripts/before_install.sh | |
shell: "bash" | |
env: | |
PY_COLORS: "1" | |
ANSIBLE_FORCE_COLOR: "1" | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
GITHUB_CONTEXT: "${{ github.event.pull_request.commits_url }}" | |
- name: "Install" | |
run: | | |
.github/workflows/scripts/install.sh | |
shell: "bash" | |
env: | |
PY_COLORS: "1" | |
ANSIBLE_FORCE_COLOR: "1" | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
GITHUB_CONTEXT: "${{ github.event.pull_request.commits_url }}" | |
- name: "Install Python client" | |
run: | | |
.github/workflows/scripts/install_python_client.sh | |
shell: "bash" | |
- name: "Install Ruby client" | |
run: | | |
.github/workflows/scripts/install_ruby_client.sh | |
shell: "bash" | |
- name: "Upload python client packages" | |
uses: "actions/upload-artifact@v4" | |
with: | |
name: "python-client.tar" | |
path: | | |
pulp_python/python-python-client.tar | |
if-no-files-found: "error" | |
overwrite: true | |
- name: "Upload python client docs" | |
uses: "actions/upload-artifact@v4" | |
with: | |
name: "python-client-docs.tar" | |
path: | | |
pulp_python/python-python-client-docs.tar | |
if-no-files-found: "error" | |
overwrite: true | |
- name: "Upload ruby client packages" | |
uses: "actions/upload-artifact@v4" | |
with: | |
name: "ruby-client.tar" | |
path: | | |
pulp_python/python-ruby-client.tar | |
if-no-files-found: "error" | |
overwrite: true | |
- name: Build docs | |
run: | | |
export DJANGO_SETTINGS_MODULE=pulpcore.app.settings | |
export PULP_SETTINGS=$PWD/.ci/ansible/settings/settings.py | |
make -C docs/ PULP_URL="https://pulp" diagrams html | |
tar -cvf docs/docs.tar docs/_build | |
- name: "Upload built docs" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "docs.tar" | |
path: "pulp_python/docs/docs.tar" | |
if-no-files-found: "error" | |
overwrite: true | |
- name: "Logs" | |
if: always() | |
run: | | |
echo "Need to debug? Please check: https://github.com/marketplace/actions/debugging-with-tmate" | |
http --timeout 30 --check-status --pretty format --print hb "https://pulp${PULP_API_ROOT}api/v3/status/" || true | |
docker images || true | |
docker ps -a || true | |
docker logs pulp || true | |
docker exec pulp ls -latr /etc/yum.repos.d/ || true | |
docker exec pulp cat /etc/yum.repos.d/* || true | |
docker exec pulp bash -c "pip3 list && pip3 install pipdeptree && pipdeptree" | |
publish-package: | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-bindings-docs" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
path: "pulp_python" | |
- uses: "actions/download-artifact@v4" | |
with: | |
name: "plugin_package" | |
path: "pulp_python/dist/" | |
- uses: "actions/setup-python@v5" | |
with: | |
python-version: "3.11" | |
- name: "Install python dependencies" | |
run: | | |
echo ::group::PYDEPS | |
pip install twine | |
echo ::endgroup:: | |
- name: "Setting secrets" | |
run: | | |
python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT" | |
env: | |
SECRETS_CONTEXT: "${{ toJson(secrets) }}" | |
- name: "Deploy plugin to pypi" | |
run: | | |
.github/workflows/scripts/publish_plugin_pypi.sh ${{ github.ref_name }} | |
publish-python-bindings: | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-bindings-docs" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
path: "pulp_python" | |
- name: "Download Python client" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "python-client.tar" | |
path: "pulp_python/" | |
- name: "Untar python client packages" | |
run: | | |
tar -xvf python-python-client.tar | |
- uses: "actions/setup-python@v5" | |
with: | |
python-version: "3.11" | |
- name: "Install python dependencies" | |
run: | | |
echo ::group::PYDEPS | |
pip install twine | |
echo ::endgroup:: | |
- name: "Setting secrets" | |
run: | | |
python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT" | |
env: | |
SECRETS_CONTEXT: "${{ toJson(secrets) }}" | |
- name: "Publish client to pypi" | |
run: | | |
bash .github/workflows/scripts/publish_client_pypi.sh ${{ github.ref_name }} | |
publish-ruby-bindings: | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-bindings-docs" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
path: "pulp_python" | |
- name: "Download Ruby client" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "ruby-client.tar" | |
path: "pulp_python/" | |
- name: "Untar Ruby client packages" | |
run: | | |
tar -xvf python-ruby-client.tar | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "2.6" | |
- name: "Setting secrets" | |
run: | | |
python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT" | |
env: | |
SECRETS_CONTEXT: "${{ toJson(secrets) }}" | |
- name: "Publish client to rubygems" | |
run: | | |
bash .github/workflows/scripts/publish_client_gem.sh ${{ github.ref_name }} | |
publish-docs: | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-bindings-docs" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 1 | |
path: "pulp_python" | |
- uses: "actions/setup-python@v5" | |
with: | |
python-version: "3.11" | |
- name: "Install python dependencies" | |
run: | | |
echo ::group::PYDEPS | |
pip install 'packaging~=21.3' requests | |
echo ::endgroup:: | |
- name: "Setting secrets" | |
run: | | |
python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT" | |
env: | |
SECRETS_CONTEXT: "${{ toJson(secrets) }}" | |
- name: "Download built docs" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "docs.tar" | |
path: "pulp_python/" | |
- name: "Download Python client docs" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "python-client-docs.tar" | |
path: "pulp_python/" | |
- name: "Publish docs to pulpproject.org" | |
run: | | |
tar -xvf docs.tar | |
.github/workflows/scripts/publish_docs.sh tag ${{ github.ref_name }} | |
create-gh-release: | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-bindings-docs" | |
- "publish-package" | |
- "publish-python-bindings" | |
- "publish-ruby-bindings" | |
- "publish-docs" | |
steps: | |
- name: "Create release on GitHub" | |
uses: "actions/github-script@v7" | |
env: | |
TAG_NAME: "${{ github.ref_name }}" | |
with: | |
script: | | |
const { TAG_NAME } = process.env; | |
await github.rest.repos.createRelease({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
tag_name: TAG_NAME, | |
make_latest: "legacy", | |
}); |