Fix CivPlus bugs #176 #189 (#190) #248
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: Continuous Deployment | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
lint-python: | |
name: Lint Python code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "pipenv" | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: lint | |
name: Lint | |
run: pipenv run flake8 ./ | |
test-docs: | |
name: Test Sphinx build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.9" | |
cache: "pipenv" | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: typing-ext-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` typing-extensions | |
- id: build | |
name: Build | |
run: make test-docs | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs-${{ github.run_number }} | |
path: ./docs | |
if-no-files-found: error | |
test-python: | |
strategy: | |
matrix: | |
python: ["3.8", "3.9", "3.10", "3.11"] | |
name: Test Python code | |
runs-on: ubuntu-latest | |
steps: | |
- id: checkout | |
name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: "pipenv" | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: | | |
pipenv install --dev --python `which python` | |
pipenv run pip install exceptiongroup | |
- id: run | |
name: Run tests | |
run: pipenv run pytest -sv | |
test-build: | |
name: Build Python package | |
runs-on: ubuntu-latest | |
needs: [test-python] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: | | |
pipenv install --dev --python `which python` | |
pipenv run pip install tomli | |
- id: build | |
name: Build release | |
run: | | |
pipenv run pip install setuptools-scm>=8.1.0 --force-reinstall --upgrade | |
make build-release | |
- id: check | |
name: Check release | |
run: make check-release | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-release-${{ github.run_number }} | |
path: ./dist | |
if-no-files-found: error | |
tag-release: | |
name: Tagged PyPI release | |
runs-on: ubuntu-latest | |
needs: [test-build] | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- id: fetch | |
name: Fetch artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: test-release-${{ github.run_number }} | |
path: ./dist | |
- id: publish | |
name: Publish release | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
verbose: true | |
verify_metadata: false |