Skip to content

Python Publish Release #37

Python Publish Release

Python Publish Release #37

Workflow file for this run

# 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"
publish-package:
runs-on: "ubuntu-latest"
needs:
- "build"
environment:
name: "pypi"
url: "https://pypi.org/p/pulp-python"
permissions:
id-token: "write"
steps:
- uses: "actions/download-artifact@v4"
with:
name: "plugin_package"
path: "dist/"
- name: "Publish package to PyPI"
uses: pypa/gh-action-pypi-publish@release/v1
publish-python-bindings:
runs-on: "ubuntu-latest"
needs:
- "build"
environment:
name: "pypi"
permissions:
id-token: "write"
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
- name: "Publish client to pypi"
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: "pulp_python/dist/"
publish-ruby-bindings:
runs-on: "ubuntu-latest"
needs:
- "build"
environment:
name: "rubygems"
permissions:
id-token: "write"
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: "Set RubyGems Credentials"
uses: "rubygems/configure-rubygems-credentials@v1.0.0"
- name: "Publish client to RubyGems"
run: |
gem push "pulp_python_client-${{ github.ref_name }}.gem"
create-gh-release:
runs-on: "ubuntu-latest"
needs:
- "build"
- "publish-package"
- "publish-python-bindings"
- "publish-ruby-bindings"
permissions:
contents: write
env:
TAG_NAME: "${{ github.ref_name }}"
steps:
- uses: "actions/checkout@v4"
with:
fetch-depth: 0
path: "pulp_python"
- uses: "actions/setup-python@v5"
with:
python-version: "3.11"
- name: "Install towncrier"
run: |
pip install towncrier
- name: "Get release notes"
id: "get_release_notes"
shell: "bash"
run: |
# The last commit before the release commit contains the release CHANGES fragments
git checkout "${TAG_NAME}~"
NOTES=$(towncrier build --draft --version $TAG_NAME)
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$NOTES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: "Create release on GitHub"
uses: "actions/github-script@v7"
env:
RELEASE_BODY: ${{ steps.get_release_notes.outputs.body }}
with:
script: |
const { TAG_NAME, RELEASE_BODY } = process.env;
await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: TAG_NAME,
body: RELEASE_BODY,
make_latest: "legacy",
});