Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .copier-answers.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Changes here will be overwritten by Copier
_commit: d814faa
_commit: 8ac03b9
_src_path: https://github.com/python-project-templates/base.git
add_docs: true
add_extension: rustjswasm
add_pyodide: false
add_wiki: true
email: 3105306+timkpaine@users.noreply.github.com
github: python-project-templates
Expand Down
61 changes: 46 additions & 15 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,33 @@ permissions:

jobs:
build:
name: build (${{ matrix.name }})
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
include:
- name: ubuntu-latest
dist_path: dist
os: ubuntu-latest
python: "3.11"
target: native
- name: ubuntu-24.04-arm
dist_path: dist
os: ubuntu-24.04-arm
python: "3.11"
target: native
- name: macos-latest
dist_path: dist
os: macos-latest
python: "3.11"
target: native
- name: windows-latest
dist_path: dist
os: windows-latest
python: "3.11"
target: native


steps:
- name: Checkout
Expand All @@ -40,7 +62,7 @@ jobs:
- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: "3.11"
version: ${{ matrix.python }}

- name: Setup Rust
uses: actions-ext/rust/setup@2db8e3e4c56beb7320c7d730bd2c2d6a6447bf6b
Expand All @@ -49,48 +71,57 @@ jobs:
uses: actions-ext/node/setup@0ea5bdcd24d2488b28e16bf611b446a2f8e1e12f
with:
version: 22.x
if: matrix.target == 'native'

- name: Install dependencies
run: make develop
if: matrix.target == 'native'

- name: Lint
run: make lint
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Checks
run: make checks
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Build
run: make build
if: matrix.target == 'native'

- name: Test
run: make coverage
if: matrix.target == 'native'

- name: Build and test Pyodide wheel
run: make test-pyodide
if: matrix.target == 'pyodide'

- name: Upload test results (Python)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: test-results-${{ matrix.os }}
name: test-results-${{ matrix.name }}
path: '**/junit.xml'
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
with:
files: '**/junit.xml'
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Upload coverage
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
if: matrix.target == 'native'

- name: Free disk space
run: |
sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /usr/local/.ghcup /usr/share/swift
df -h /
shell: bash
if: runner.os == 'Linux'
if: matrix.target == 'native' && runner.os == 'Linux'

- name: Build distributions (Linux x86_64)
run: |
Expand All @@ -102,7 +133,7 @@ jobs:
shell: bash
env:
CIBW_ARCHS_LINUX: native
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Build distributions (Linux ARM64)
run: |
Expand All @@ -112,7 +143,7 @@ jobs:
shell: bash
env:
CIBW_ARCHS_LINUX: native
if: matrix.os == 'ubuntu-24.04-arm'
if: matrix.name == 'ubuntu-24.04-arm'

- name: Build distributions (macOS/Windows)
run: |
Expand All @@ -122,22 +153,22 @@ jobs:
shell: bash
env:
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0
if: runner.os != 'Linux'
if: matrix.target == 'native' && runner.os != 'Linux'

- name: Test wheel
uses: actions-ext/python/test-wheel@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
module: python_template_rust
if: runner.os == 'Linux'
if: matrix.target == 'native' && runner.os == 'Linux'

- name: Test source distribution
uses: actions-ext/python/test-sdist@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
module: python_template_rust
if: matrix.os == 'ubuntu-latest'
if: matrix.name == 'ubuntu-latest'

- name: Upload distributions
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dist-${{ matrix.os }}
path: dist
name: dist-${{ matrix.name }}
path: ${{ matrix.dist_path }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ python_template_rust/labextension
# Emscripten SDK (locally installed)
emsdk


# Mac
.DS_Store

Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ coverage-rs: ## run rust tests and collect test coverage

.PHONY: test coverage tests
test: test-py test-js test-rs ## run all tests

coverage: coverage-py coverage-js coverage-rs ## run all tests and collect test coverage

# alias
Expand Down
Loading