Skip to content

Update changelog update process (#31) #26

Update changelog update process (#31)

Update changelog update process (#31) #26

---
# Upload to Test PyPI on every push to main
name: Publish package to test.pypi.org
on:
push:
branches: [main]
concurrency:
group: pypi
jobs:
test-pypi-build:
name: Build package with unique version for test.pypi.org
if: github.repository == 'tektronix/tm_devices'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
# TODO: update to just "x", currently there appears to be a bug in hynek/build-and-inspect-python-package, where it uses an outdated version of typing_extensions.
python-version: 3.11
check-latest: true
- name: Install workflow dependencies
run: pip install poetry-core tomli tomli_w requests
- name: Create unique package version
id: create-version
run: |
CURRENT_VERSION=$(python scripts/pypi_latest_version.py --package=tm_devices --index=test.pypi)
echo CURRENT_VERSION: $CURRENT_VERSION
NEW_VERSION=$(python scripts/create_post_version_for_testpypi.py --version=$CURRENT_VERSION)
echo NEW_VERSION: $NEW_VERSION
python scripts/project_version.py --set-version=$NEW_VERSION
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_OUTPUT
- name: Build package
uses: hynek/[email protected]
outputs:
built-version: ${{ steps.create-version.outputs.NEW_VERSION }}
test-pypi-upload:
name: Upload package to test.pypi.org
needs: test-pypi-build
if: github.repository == 'tektronix/tm_devices'
runs-on: ubuntu-latest
environment: package-testpypi
permissions:
id-token: write
steps:
- name: Download built packages
uses: actions/download-artifact@v3
with:
name: Packages
path: dist
- name: Upload package to Test PyPI
uses: pypa/[email protected]
with:
repository-url: https://test.pypi.org/legacy/
test-pypi-install:
name: Install package from test.pypi.org
needs: [test-pypi-build, test-pypi-upload]
if: github.repository == 'tektronix/tm_devices'
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: x
check-latest: true
- name: Test installing from test.pypi.org
# A retry is used to allow for some downtime before the package is installable
uses: nick-fields/retry@v2
with:
timeout_minutes: 2
max_attempts: 5
retry_wait_seconds: 30
warning_on_retry: false
command: pip install --index-url=https://test.pypi.org/simple/ --extra-index-url=https://pypi.org/simple
tm_devices==${{ needs.test-pypi-build.outputs.built-version }}