Skip to content
Merged
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
55 changes: 55 additions & 0 deletions .github/workflows/ci-and-bump.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI & Bump

on:
pull_request:
branches: [main]
push:
branches: [main]

permissions:
contents: write # allow pushing commits/tags from this workflow

jobs:
build:
if: github.event_name == 'pull_request'
name: Build and Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install package
run: |
python -m pip install --upgrade pip
python -m pip install .
- name: Run tests
run: |
python -m pip install numpy pytest
pytest -q

bump_version_and_tag:
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !startsWith(github.event.head_commit.message, 'bump:')
name: Bump version and tag on main
runs-on: ubuntu-latest
steps:
- name: Checkout (HTTPS with token)
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: true # keep token in origin for push
- name: Set git identity
run: |
git config user.name "innoptech-bot"
git config user.email "ruelj2@users.noreply.github.com"
- name: Commitizen bump
id: cz
uses: commitizen-tools/commitizen-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
push: true # let the action push commit + tag
- name: Show bumped version
run: echo "Bumped to version ${{ steps.cz.outputs.version }}"
158 changes: 0 additions & 158 deletions .github/workflows/publish-to-test-pypi.yml

This file was deleted.

96 changes: 96 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Build & Publish

on:
push:
tags:
- 'v*'

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # cibuildwheel sometimes needs tags
- uses: actions/setup-python@v5
- name: Print the arch and system
run: |
python -c "import platform; print('System:', platform.system()); print('Architecture:', platform.machine())"
- name: Install cibuildwheel
run: python -m pip install --upgrade pip cibuildwheel==2.20.0
- name: Build wheels
env:
CIBW_SKIP: "cp36-* cp37-* pp*"
run: python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: wheelhouse/*.whl

publish-to-testpypi:
name: Publish to TestPyPI
needs: build_wheels
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://test.pypi.org/p/openstl
permissions:
id-token: write
contents: read
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

publish-to-pypi:
name: Publish to PyPI
needs: publish-to-testpypi
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/openstl
permissions:
id-token: write
contents: read
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1

github-release:
name: Sign & Upload to GitHub Release
needs: publish-to-pypi
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@v2.1.1
with:
inputs: ./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: gh release create '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes ""
- name: Upload artifacts
env:
GITHUB_TOKEN: ${{ github.token }}
run: gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}'
Loading