Merge pull request #99 from uw-it-aca/bug/django-session-err #62
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
# | |
# Example GitHub Actions config for UW-IT AXD2 app testing and publishing to PyPi | |
# | |
# Preconditions: | |
# | |
# 1) Application contains a setup.py file | |
# | |
# 2) Application repo has access to the required secret | |
# at https://github.com/organizations/uw-it-aca/settings/secrets: | |
# | |
# PYPI_API_TOKEN | |
# | |
# To adapt this config to a specific Python app: | |
# | |
# 1) Set APP_NAME to the name of the package name/directory. | |
# | |
# 2) Set CONF_PATH to a path containing a urls.py and/or settings.py file | |
# used by the test suite, if any | |
# | |
# 3) Verify that the lists of branches for push/pull_request is appropriate, | |
# and add other branch names if needed. | |
# | |
# 4) Update the matrix of django versions to test, if necessary. | |
# | |
--- | |
name: tests | |
env: | |
APP_NAME: blti | |
CONF_PATH: conf | |
COVERAGE_DJANGO_VERSION: '4.2' | |
COVERAGE_PYTHON_VERSION: '3.10' | |
on: | |
push: | |
branches: [main, master, qa, develop] | |
pull_request: | |
branches: [main, master, qa, develop] | |
types: [opened, reopened, synchronize] | |
release: | |
branches: [main, master] | |
types: [published] | |
jobs: | |
test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
python-version: | |
- '3.8' | |
- '3.10' | |
django-version: | |
- '3.2' | |
- '4.2' | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e . | |
pip install coverage coveralls==3.3.1 | |
- name: Upgrade Django ${{ matrix.django-version }} | |
run: pip install "Django~=${{ matrix.django-version }}.0" | |
- name: Setup Django | |
run: | | |
django-admin startproject project . | |
test -f ${CONF_PATH}/urls.py && cp ${CONF_PATH}/urls.py project/ | |
test -f ${CONF_PATH}/settings.py && cat ${CONF_PATH}/settings.py >> project/settings.py | |
- name: Run Python Linters | |
uses: uw-it-aca/actions/python-linters@main | |
with: | |
app_name: ${APP_NAME} | |
exclude_paths: 'migrations' | |
- name: Run Migrations | |
run: python manage.py migrate | |
- name: Run Tests | |
run: | | |
python -m compileall ${APP_NAME}/ | |
coverage run --source=${APP_NAME}/ manage.py test ${APP_NAME} | |
- name: Report Test Coverage | |
if: | | |
matrix.django-version == env.COVERAGE_DJANGO_VERSION && | |
matrix.python-version == env.COVERAGE_PYTHON_VERSION | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
shell: bash | |
run: coveralls | |
publish: | |
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags') | |
needs: test | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Publish to PyPi | |
uses: uw-it-aca/actions/publish-pypi@main | |
with: | |
app_name: ${APP_NAME} | |
tag_name: ${{ github.event.release.tag_name }} | |
api_token: ${{ secrets.PYPI_API_TOKEN }} |