-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #31 from mardiros/features/uv
Features/uv
- Loading branch information
Showing
16 changed files
with
660 additions
and
732 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Build envsub tarballs for supported python. | ||
|
||
name: "Build artifact" | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
release-version: | ||
required: true | ||
type: string | ||
dry-run: | ||
required: true | ||
type: boolean | ||
python-version: | ||
required: true | ||
type: string | ||
pull_request: | ||
paths: | ||
# When we change pyproject.toml, we want to ensure that the maturin builds still work. | ||
- pyproject.toml | ||
# And when we change this workflow itself... | ||
- .github/workflows/build-artifacts.yml | ||
|
||
concurrency: | ||
group: sdist-${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
sdist: | ||
name: Build artifact for ${{ inputs.release-version }} ${{ inputs.dry-run && '(dry-run)' || '' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ inputs.python-version }} | ||
|
||
- name: Install uv | ||
uses: astral-sh/setup-uv@v3 | ||
|
||
- name: Install the project | ||
run: uv sync | ||
|
||
- name: Build tarball | ||
run: uv build | ||
|
||
- name: "Upload sdist" | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: pypi_files | ||
path: dist/* |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Publish a release to PyPI. | ||
# | ||
name: "Publish to PyPI" | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
release-version: | ||
required: true | ||
type: string | ||
dry-run: | ||
required: true | ||
type: boolean | ||
|
||
jobs: | ||
pypi-publish: | ||
name: Upload to PyPI ${{ inputs.release-version }} ${{ inputs.dry-run && '(dry-run)' || '' }} | ||
runs-on: ubuntu-latest | ||
if: ${{ !inputs.dry-run }} | ||
permissions: | ||
# This permission is needed for private repositories. | ||
contents: read | ||
# IMPORTANT: this permission is mandatory for trusted publishing | ||
id-token: write | ||
steps: | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
pattern: pypi_files | ||
path: dist | ||
merge-multiple: true | ||
|
||
- uses: pdm-project/setup-pdm@v4 | ||
with: | ||
python-version: 3.12 | ||
|
||
- name: Publish package distributions to PyPI | ||
run: pdm publish --no-build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
name: Release | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'v*' # Automatically trigger on version tags | ||
- 'dry-run' | ||
|
||
workflow_dispatch: | ||
inputs: | ||
tag: | ||
description: "Release Tag" | ||
required: true | ||
default: "dry-run" | ||
type: string | ||
|
||
env: | ||
PYTHON_VERSION: "3.12" | ||
|
||
|
||
jobs: | ||
plan: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
release_version: ${{ steps.release-version.outputs.release_version }} | ||
dry-run: ${{ steps.release-version.outputs.dry_run }} | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set Release Version | ||
id: release-version | ||
run: | | ||
if [ "${{ github.event_name }}" == "push" ]; then | ||
echo "release_version=${{ github.ref_name }}" >> $GITHUB_OUTPUT | ||
if [ "${{ github.ref_name }}" == "dry-run" ]; then | ||
echo "dry_run=true" >> $GITHUB_OUTPUT | ||
else | ||
echo "dry_run=false" >> $GITHUB_OUTPUT | ||
fi | ||
else | ||
version="${{ github.event.inputs.tag || 'dry-run' }}" | ||
if [ "${version}" == "dry-run" ]; then | ||
echo "release_version=latest" >> $GITHUB_OUTPUT | ||
echo "dry_run=true" >> $GITHUB_OUTPUT | ||
else | ||
echo "release_version=${version}" >> $GITHUB_OUTPUT | ||
echo "dry_run=false" >> $GITHUB_OUTPUT | ||
fi | ||
fi | ||
- name: Display Release Version | ||
run: echo "The release version is ${{ steps.release-version.outputs.release_version }}" | ||
|
||
unit-tests: | ||
uses: ./.github/workflows/tests.yml | ||
|
||
build-artifacts: | ||
needs: | ||
- plan | ||
- unit-tests | ||
uses: ./.github/workflows/build-artifacts.yml | ||
with: | ||
release-version: ${{ needs.plan.outputs.release_version }} | ||
dry-run: ${{ needs.plan.outputs.dry-run == 'true' }} | ||
python-version: '3.12' | ||
|
||
tests-artifacts: | ||
needs: | ||
- plan | ||
- build-artifacts | ||
uses: ./.github/workflows/tests-artifacts.yml | ||
with: | ||
release-version: ${{ needs.plan.outputs.release_version }} | ||
dry-run: ${{ needs.plan.outputs.dry-run == 'true' }} | ||
|
||
publish-pypi: | ||
needs: | ||
- plan | ||
- tests-artifacts | ||
uses: ./.github/workflows/publish-pypi.yml | ||
with: | ||
release-version: ${{ needs.plan.outputs.release_version }} | ||
dry-run: ${{ needs.plan.outputs.dry-run == 'true' }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: tests artifacts | ||
|
||
# Controls when the workflow will run | ||
on: | ||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_call: | ||
inputs: | ||
release-version: | ||
required: true | ||
type: string | ||
description: "release number" | ||
dry-run: | ||
required: true | ||
type: boolean | ||
description: "blank run means that the release will not be pushed" | ||
|
||
jobs: | ||
test-sdist: | ||
name: test tarball archive of ${{ inputs.release-version }} ${{ inputs.dry-run && '(dry-run)' || '' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
pattern: pypi_files | ||
path: dist | ||
merge-multiple: true | ||
|
||
- name: "Install" | ||
run: | | ||
pip install dist/aioxmlrpc-*.whl --force-reinstall | ||
- name: "Test sdist" | ||
run: | | ||
python -c "from aioxmlrpc import __version__; print(__version__, end='')" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# This is a basic workflow to help you get started with Actions | ||
|
||
name: tests | ||
|
||
# Controls when the workflow will run | ||
on: | ||
# Triggers the workflow on push or pull request events but only for the main branch | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
|
||
# Allows you to run the tests suite manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
# Allows you to run the tests suite before building release artifacts | ||
workflow_call: | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# This workflow contains a single job called "build" | ||
CI: | ||
# The type of runner that the job will run on | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: ["3.9", "3.10", "3.11", "3.12"] | ||
# Steps represent a sequence of tasks that will be executed as part of the job | ||
steps: | ||
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | ||
- uses: actions/checkout@v4 | ||
- uses: chartboost/ruff-action@v1 | ||
|
||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install uv | ||
uses: astral-sh/setup-uv@v3 | ||
|
||
- name: Install the project | ||
run: uv sync --group dev | ||
|
||
# - name: Check types | ||
# run: | | ||
# uv run mypy src/aioxmlrpc/ | ||
|
||
- name: Run tests | ||
run: | | ||
uv run pytest tests --junitxml=junit/test-results-${{ matrix.python-version }}.xml --cov=aioxmlrpc --cov-report=xml --cov-report=html | ||
- name: Upload pytest test results | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: pytest-results-${{ matrix.python-version }} | ||
path: junit/test-results-${{ matrix.python-version }}.xml | ||
|
||
- name: Upload test results to Codecov | ||
if: ${{ !cancelled() }} && matrix.python-version == '3.12' && github.event_name != 'workflow_dispatch' | ||
uses: codecov/test-results-action@v1 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
|
||
- name: Codecov | ||
if: matrix.python-version == '3.12' && github.event_name != 'workflow_dispatch' | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
# Comma-separated list of files to upload | ||
files: coverage.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,4 +6,3 @@ Gustavo Tavares Cabral | |
Vladimir Rutsky | ||
nibrag | ||
sayoun | ||
|
Oops, something went wrong.