Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

2.3.1: minor fix after major update#43

2.3.1: minor fix after major update

2.3.1: minor fix after major update #43

# This workflow checks out a new release and publishes it to PyPI using Poetry.
#
# First it builds a wheel for every combination of OS and Python version listed, save for Python 3.12 on ubuntu-latest.
# It then starts an ubuntu-latest instance that retrieves all built wheels, and builds a wheel for Python 3.12 and a source distribution.
# Finally it uploads the source and all wheels to PyPI.
name:Publish Package
# Controls when the workflow will run
on:
# Workflow will run when a release has been published for the package
release:
types:
-published
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build_platform_specific_wheels:
name:Build for Python ${{ matrix.pyversion }} on ${{ matrix.os }}
runs-on:${{ matrix.os }}
strategy:
matrix:# important: if this matrix is changed, also change EXPECTED_WHEELS_COUNT in `build_and_publish_as_package` below
os:[ubuntu-22.04, ubuntu-latest, macos-latest, windows-latest]# ubuntu-22.04 is used to generate wheels for manylinux_2_35 in addition to the manylinux_2_39 of ubuntu-latest
pyversion:["3.9", "3.10", "3.11", "3.12", "3.13"]
exclude:
-os:ubuntu-latest
pyversion:"3.12"# exclude because we already use this OS and version for building the source package
steps:
-uses:actions/checkout@v4
-name:Setup Python
uses:actions/setup-python@v5
with:
python-version:${{ matrix.pyversion }}
-name:Setup Poetry
uses:Gr1N/setup-poetry@v9
-name:Build wheel distribution
run:|
poetry install
poetry build -f wheel
ls ./dist
-name:Upload the built wheel distribution
uses:actions/upload-artifact@v4
with:
name:${{ matrix.os }}_${{ matrix.pyversion }}
path:./dist/*.whl
if-no-files-found:error
build_and_publish_as_package:
name:Package and upload release to PyPI
needs:[build_platform_specific_wheels]
runs-on:ubuntu-latest
environment:
name:pypi
url:https://pypi.org/p/python-constraint2
permissions:
id-token:write# IMPORTANT: this permission is mandatory for trusted publishing
steps:
-name:Build the source distribution and platform-specific wheel
uses:actions/checkout@v4
-name:Setup Python
uses:actions/setup-python@v5
with:
python-version:"3.12"
-name:Setup Poetry
uses:Gr1N/setup-poetry@v9
-name:Build for Python 3.12 on ubuntu-latest
run:|
poetry install
poetry build
ls ./dist
-name:Download all platform-specific wheels to the `temp_dist` folder
uses:actions/download-artifact@v4
with:
path:./temp_dist
-name:Unpack the remotely built wheels to the `dist` folder
run:|# searches for wheel files in all subdirectories of ./temp_dist and moves the files to ./dist
echo "Received artifacts:"
ls ./temp_dist
echo "\n"
mkdir -p ./dist
find ./temp_dist -name '*.whl' -exec mv {} ./dist \;
echo "Unpacked files:"
ls ./dist
echo "\n"
rm -rf ./temp_dist
-name:Check that the number of wheels is as expected and there is one source distribution
run:|
SOURCES_COUNT=$(ls -lR ./dist/*.tar.gz | wc -l)
echo "Number of source distributions: $SOURCES_COUNT"
if [ "$SOURCES_COUNT" -ne 1 ]; then
echo "::error::Number of source distributions $SOURCES_COUNT not equal to 1"
exit 1;
fi
EXPECTED_WHEELS_COUNT=20
WHEELS_COUNT=$(ls -lR ./dist/*.whl | wc -l)
echo "Number of wheel distributions: $WHEELS_COUNT"
if [ "$WHEELS_COUNT" -ne "$EXPECTED_WHEELS_COUNT" ]; then
echo "::error::Number of wheel distributions $WHEELS_COUNT not equal to $EXPECTED_WHEELS_COUNT"
exit 1;
fi
-name:Publish package distributions to PyPI
uses:pypa/gh-action-pypi-publish@release/v1
with:
skip-existing:true

[8]ページ先頭

©2009-2025 Movatter.jp