Merge pull request #1533 from palewire/dependabot/pip/jinja2-3.1.4 #113
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@v4 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: lint | |
name: Lint | |
run: pipenv run flake8 ./calaccess_raw | |
test-python: | |
name: "Test Python code" | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
settings: ['postgresql', 'multi_dbs'] | |
python: ['3.8', '3.9', '3.10'] | |
services: | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: calaccess_raw | |
POSTGRES_USER: postgres | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` --skip-lock | |
- name: Test | |
run: | | |
cp example/settings_test_${{ matrix.settings }}.py.template example/settings_local.py | |
pipenv run coverage run example/manage.py test calaccess_raw | |
pipenv run coverage report -m | |
env: | |
IA_STORAGE_ACCESS_KEY: ${{ secrets.IA_STORAGE_ACCESS_KEY }} | |
IA_STORAGE_SECRET_KEY: ${{ secrets.IA_STORAGE_SECRET_KEY }} | |
test-build: | |
name: Build Python package | |
runs-on: ubuntu-latest | |
needs: [test-python] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: build | |
name: Build release | |
run: | | |
pipenv run python setup.py sdist | |
pipenv run python setup.py bdist_wheel | |
shell: bash | |
- id: check | |
name: Check release | |
run: pipenv run twine check dist/* | |
shell: bash | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: release | |
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@v3 | |
with: | |
python-version: '3.9' | |
- id: fetch | |
name: Fetch artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: release | |
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 |