Skip to content

26.3.0rc0

26.3.0rc0 #236

Workflow file for this run

name: Build
on:
release:
types: [published]
jobs:
build:
name: 🔨 Build distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🏗 Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: 🏗 Install build dependencies
run: |
python -m pip install -U wheel build setuptools --user
- name: 🔨 Build a binary wheel and a source tarball
working-directory: core
run: |
python -m build --wheel
- name: ⬆ Upload build result
uses: actions/upload-artifact@v4
with:
name: dist
path: core/dist
- name: ➕ Upload wheel to GH release page
uses: svenstaro/upload-release-action@v2
if: github.event_name == 'release' && github.repository == 'Pioreactor/pioreactor'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: core/dist/*.whl
tag: ${{ github.event.release.tag_name }}
overwrite: true
file_glob: true
- name: ➕ Upload CHANGELOG to GH release page
uses: svenstaro/upload-release-action@v2
if: github.event_name == 'release' && github.repository == 'Pioreactor/pioreactor'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: CHANGELOG.md
tag: ${{ github.event.release.tag_name }}
overwrite: true
file_glob: true
build-deps:
name: 🔨 Build dependencies and upload
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🏗 Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13
- name: 🏗 Install dependencies
run: |
python -m pip install --upgrade pip
- name: 🔨 Download wheels for all dependencies
run: |
pip download -d wheels \
--find-links wheels \
-r requirements/requirements_leader_worker.txt \
--index-url https://piwheels.org/simple \
--platform linux_armv7l --platform linux_armv6l --platform manylinux_2_36_armv7l \
--only-binary=:all: \
--extra-index-url https://pypi.org/simple \
--python-version 311
# Add build tools so any future sdist won’t choke offline
pip download -d wheels setuptools wheel \
--index-url https://piwheels.org/simple \
--extra-index-url https://pypi.org/simple
- name: Zip the wheels
run: |
cd wheels
zip -r ../wheels_${{ github.event.release.tag_name }}.zip .
- name: Upload zipped wheels
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: wheels_${{ github.event.release.tag_name }}.zip
tag: ${{ github.event.release.tag_name }}
overwrite: true
zip-asset-upload:
name: 🤐 Zip assets and upload
runs-on: ubuntu-latest
needs: [build, build-deps]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download release assets
run: |
curl -s https://api.github.com/repos/pioreactor/pioreactor/releases/tags/${{ github.event.release.tag_name }} | jq -r '.assets[].browser_download_url' > assets.txt
mkdir release_assets
cd release_assets
while read -r line; do
echo "$line"
wget "$line"
done < ../assets.txt
[ -f pre_update.sh ] || touch pre_update.sh
[ -f update.sh ] || touch update.sh
[ -f post_update.sh ] || touch post_update.sh
[ -f update.sql ] || touch update.sql
- name: Zip the assets and produce hash
run: |
cd release_assets
zip -r ../release_${{ github.event.release.tag_name }}.zip .
- name: Upload zipped assets
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release_${{ github.event.release.tag_name }}.zip
tag: ${{ github.event.release.tag_name }}
overwrite: true
publish-on-pypi:
name: 📦 Publish tagged releases to PyPI
runs-on: ubuntu-latest
needs: [build]
steps:
- name: ⬇ Download build result
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: 📦 Publish to index
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PIOREACTOR_PYPI_API_TOKEN }}
notify-custopizer-build:
name: 📧 Notify Pioreactor/CustoPizer
runs-on: ubuntu-latest
needs: [build]
steps:
- name: 👀 Determine version
run: |
echo "PIOREACTOR_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: 🚀 Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPODISPATCH_TOKEN }}
repository: Pioreactor/CustoPizer
event-type: pioreactor_release
client-payload: '{"version": "${{ env.PIOREACTOR_VERSION }}"}'