feat: initialize benchmark testing module #211
Workflow file for this run
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
name: ci-cd | |
on: | |
push: | |
branches: [main, development] | |
pull_request: | |
branches: [main, development] | |
workflow_dispatch: | |
jobs: | |
ci: | |
# Set up operating system | |
runs-on: ubuntu-latest | |
# Define job steps | |
steps: | |
# Set up job requirements | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- name: Check-out repository | |
uses: actions/checkout@v4 | |
- name: Install poetry | |
uses: snok/install-poetry@v1 | |
- name: Install package | |
run: poetry install | |
# Format code and error on issues. This is an easy check to pass. | |
- uses: psf/black@stable | |
with: | |
jupyter: true | |
src: ./src | |
version: "24.8.0" | |
- uses: psf/black@stable | |
with: | |
jupyter: true | |
src: ./tests | |
version: "24.8.0" | |
# Analyze code but don't error on issues. This check encourages best | |
# practices and offers flexibility in adoption. | |
- name: Install poetry | |
uses: snok/install-poetry@v1 | |
- name: Install package | |
run: poetry install | |
- name: Analyze code with pylint | |
run: | | |
poetry run pylint src/ --exit-zero --disable=C0103,W0621,R0904 | |
poetry run pylint tests/ --exit-zero --disable=C0103,W0621,R0904 | |
# Test | |
- name: Test with pytest | |
run: poetry run pytest tests/ --cov=spinneret --cov-report=xml | |
- name: Upload coverage reports to Codecov | |
uses: codecov/[email protected] | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
# Build docs | |
- name: Build documentation | |
run: poetry run make html --directory docs/ | |
cd: | |
# Only run this job if the "ci" job passes | |
needs: ci | |
# Only run this job if new work is pushed to "main" | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
# Set up operating system | |
runs-on: ubuntu-latest | |
# Define job steps | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- name: Check-out repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.RELEASE_TOKEN }} | |
- name: Install poetry | |
uses: snok/install-poetry@v1 | |
- name: Install package | |
run: poetry install | |
- name: Use Python Semantic Release to prepare release | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
poetry run semantic-release version | |
poetry run semantic-release publish | |
git checkout development | |
git merge main | |
git push origin development | |
# - name: Publish to TestPyPI | |
# uses: pypa/gh-action-pypi-publish@release/v1 | |
# with: | |
# user: __token__ | |
# password: ${{ secrets.TEST_PYPI_API_TOKEN }} | |
# repository_url: https://test.pypi.org/legacy/ | |
# - name: Test install from TestPyPI | |
# run: | | |
# pip install \ | |
# --index-url https://test.pypi.org/simple/ \ | |
# --extra-index-url https://pypi.org/simple \ | |
# spinneret | |
# - name: Publish to PyPI | |
# uses: pypa/gh-action-pypi-publish@release/v1 | |
# with: | |
# user: __token__ | |
# password: ${{ secrets.PYPI_API_TOKEN }} |