Skip to content

Merge pull request #44 from kmnhan/pre-commit-ci-update-config #88

Merge pull request #44 from kmnhan/pre-commit-ci-update-config

Merge pull request #44 from kmnhan/pre-commit-ci-update-config #88

Workflow file for this run

name: Release
on:
push:
branches: [ "main" ]
workflow_dispatch:
env:
FORCE_COLOR: 1
jobs:
test:
name: Python ${{ matrix.python-version }} tests
runs-on: ubuntu-latest
env:
DISPLAY: ':99.0'
PYTHONDONTWRITEBYTECODE : 1
strategy:
matrix:
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: tlambert03/setup-qt-libs@v1
- name: Setup for Qt testing
run: |
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX
- name: Install pytest and dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -v .[complete] pyqt6
- name: Test with pytest
if: matrix.python-version != '3.12'
run: |
pytest
- name: Test with pytest with coverage
if: matrix.python-version == '3.12'
run: |
pytest --cov erlab --cov-report xml
- name: Upload coverage to Codecov
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
release:
name: Release
runs-on: ubuntu-latest
concurrency: push
needs: test
environment:
name: pypi
url: https://pypi.org/p/erlab
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Python Semantic Release
id: release
uses: python-semantic-release/python-semantic-release@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish package distributions to PyPI
id: pypi-publish
if: steps.release.outputs.released == 'true'
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true
- name: Publish package distributions to GitHub Releases
id: github-release
if: steps.release.outputs.released == 'true'
uses: python-semantic-release/upload-to-gh-release@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.release.outputs.tag }}