Skip to content

Commit

Permalink
ci: Set up release automation
Browse files Browse the repository at this point in the history
Build sdists and wheels in CI, install wheels, and run the tests from
the installed wheels.

Signed-off-by: Matt Wozniski <[email protected]>
  • Loading branch information
godlygeek committed Dec 19, 2023
1 parent dca2075 commit d6415a6
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 25 deletions.
86 changes: 86 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Build

on:
push:
pull_request:
release:
types:
- published
schedule:
# At 12:00 UTC on every day-of-month
- cron: "0 12 */1 * *"

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
build_dists:
name: Source and wheel distributions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Build distributions
run: pipx run build[virtualenv] --sdist --wheel

- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/*

- uses: actions/upload-artifact@v4
with:
name: test-deps
path: |
tests/
Makefile
requirements-dev.txt
test:
needs: [build_dists]
name: 'Test'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}-dev
- uses: actions/download-artifact@v4
with:
name: dist
path: dist
- uses: actions/download-artifact@v4
with:
name: test-deps
path: .
- name: Install wheel
run: |
python -m pip install dist/*.whl
- name: Install Python dependencies
run: |
python -m pip install -r requirements-dev.txt
- name: Disable ptrace security restrictions
run: |
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: Test
run: |
make check
upload_pypi:
needs: [test]
runs-on: ubuntu-latest
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v4
with:
name: dist
path: dist

- uses: pypa/[email protected]
with:
password: ${{ secrets.PYPI_PASSWORD }}
25 changes: 0 additions & 25 deletions .github/workflows/validate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,3 @@ jobs:
- name: Lint sources
run: |
make PYTHON=python${{matrix.python_version}} lint
test:
name: 'Test'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}-dev
- name: Install Python dependencies
run: |
python${{matrix.python_version}} -m pip install -r requirements-dev.txt
- name: Install Package
run: |
python${{matrix.python_version}} -m pip install -e .
- name: Disable ptrace security restrictions
run: |
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- name: Test
run: |
make PYTHON=python${{matrix.python_version}} check

0 comments on commit d6415a6

Please sign in to comment.