Skip to content

[pull] main from xarray-contrib:main #274

[pull] main from xarray-contrib:main

[pull] main from xarray-contrib:main #274

name: Build and Upload to TestPyPI
on:
push:
branches:
- "main"
pull_request:
types: [opened, reopened, synchronize, labeled]
branches:
- "*"
workflow_dispatch:
# no need for concurrency limits
jobs:
build-artifacts:
if: ${{ contains( github.event.pull_request.labels.*.name, 'test-build') && github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Python and uv
uses: astral-sh/setup-uv@v4
with:
python-version: "3.13"
- name: Build tarball and wheels
run: |
git clean -xdf
SETUPTOOLS_SCM_OVERRIDES_FOR_FLOX='local_scheme = "no-local-version"' uv build
- name: Check built artifacts
run: |
uv venv
uv pip install twine
uv run twine check --strict dist/*
if [ -f dist/flox-999.tar.gz ]; then
echo "❌ INVALID VERSION NUMBER"
exit 1
else
echo "✅ Looks good"
fi
- uses: actions/upload-artifact@v4
with:
name: releases
path: dist
test-built-dist:
needs: build-artifacts
runs-on: ubuntu-latest
permissions:
# IMPORTANT: this permission is mandatory for Trusted Publishing
id-token: write
steps:
# need pyproject.toml for uv publish --index testpypi
- uses: actions/checkout@v5
with:
fetch-depth: 0 # Fetch all history for all branches and tags.
- name: Set up Python and uv
uses: astral-sh/setup-uv@v4
with:
python-version: "3.13"
- name: Get built artifact
uses: actions/download-artifact@v4
with:
name: releases
path: dist
- name: List contents of built dist
run: |
ls -ltrh
ls -ltrh dist
- name: Verify the built dist/wheel is valid
run: |
pip install dist/flox*.whl
- name: Publish package to TestPyPI
run: |
uv publish --index testpypi