Merge pull request #210 from stucka/stucka-fixes #678
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: Testing and distribution | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
lint-python: | |
name: Lint Python code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: install-python | |
name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: install-pipenv | |
name: Install pipenv | |
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python | |
- id: install-python-dependencies | |
name: Install Python dependencies | |
run: pipenv install --dev | |
- id: lint | |
name: Lint | |
run: make lint | |
mypy-python: | |
name: Static type check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: install-python | |
name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: install-pipenv | |
name: Install pipenv | |
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python | |
- id: install-python-dependencies | |
name: Install Python dependencies | |
run: pipenv install --dev | |
- id: mypy | |
name: Mypy | |
run: make mypy | |
test-python: | |
strategy: | |
matrix: | |
python: ["3.7", "3.8", "3.9", "3.10"] | |
name: Test Python code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: install-python | |
name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: 'pipenv' | |
- id: install-pipenv | |
name: Install pipenv | |
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python | |
- id: install-python-dependencies | |
name: Install Python dependencies | |
run: | | |
pipenv install --python `which python` pytest pytest-vcr bln marshmallow click jellyfish requests certifi importlib_metadata | |
pipenv run pip install certifi importlib_metadata | |
shell: bash | |
- id: run | |
name: Run tests | |
run: make test-on-ci | |
env: | |
BLN_API_TOKEN: ${{ secrets.BLN_API_TOKEN }} | |
build: | |
name: Build Python package | |
runs-on: ubuntu-latest | |
needs: [test-python] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: install-python | |
name: Install Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: install-pipenv | |
name: Install pipenv | |
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python | |
- id: install-python-dependencies | |
name: Install Python dependencies | |
run: | | |
pipenv install --dev | |
pipenv run pip install certifi importlib_metadata | |
- id: build | |
name: Build release | |
run: make build-release | |
- id: check | |
name: Check release | |
run: make check-release | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release-${{ github.run_number }} | |
path: ./dist | |
if-no-files-found: error | |
tag-release: | |
name: PyPI release | |
runs-on: ubuntu-latest | |
needs: [build] | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
permissions: | |
contents: 'read' | |
id-token: 'write' | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- id: fetch | |
name: Fetch artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: 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 |