Merge pull request #291 from ppfeufer/the-big-rename #1073
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: Tests | |
on: | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
jobs: | |
# pre-commit Checks | |
pre-commit: | |
name: Pre Commit Checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Run Pre Commit Checks | |
uses: pre-commit/[email protected] | |
# Run Test Coverage | |
test-coverage-aa-stable: | |
needs: [pre-commit] | |
name: AA Latest (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }} with ${{ matrix.database }}) | |
runs-on: ubuntu-latest | |
strategy: | |
# Set Python and Django version to test for the stable release of AllianceAuth | |
matrix: | |
# Don't forget to change the Python version for [upload-coverage] as well | |
python-version: | |
- '3.8' | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
# Don't forget to change the Django version for [upload-coverage] as well | |
django-version: | |
- '4.0' | |
# MySQL versions to test against | |
database: | |
# https://endoflife.date/mysql | |
- mysql:8.0 # [LTS] Maintained until: 30 Apr 2026 | |
- mysql:8.1 # Latest official release | |
# https://endoflife.date/mariadb and https://mariadb.com/kb/en/mariadb-server-release-dates/ | |
- mariadb:10.4 # Maintained until: 18 June 2024 | |
- mariadb:10.5 # Maintained until: 24 June 2025 | |
- mariadb:10.6 # [LTS] Maintained until: July 2026 | |
- mariadb:10.10 # Maintained until: November 2023 | |
- mariadb:10.11 # [LTS] Maintained until: February 2028 | |
- mariadb:11.0 # Maintained until: June 2024 | |
- mariadb:11.1 # Maintained until: August 2024 | |
# continue-on-error: ${{ matrix.python-version == '3.11-dev' }} | |
services: | |
database: | |
image: ${{ matrix.database }} | |
env: | |
MYSQL_ROOT_PASSWORD: temp_password_aa_tox_tests | |
MYSQL_DATABASE: tox_allianceauth | |
ports: | |
- 3306:3306 | |
options: --tmpfs /var/lib/mysql | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install redis | |
run: sudo apt-get install -y redis-tools redis-server | |
- name: Verify that redis is up | |
run: redis-cli ping | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Tox and any other packages | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade tox tox-gh-actions | |
- name: Run Tox | |
# Run tox using the version of Python in `PATH` | |
run: tox -v | |
env: | |
DJANGO: ${{ matrix.django-version }} | |
ALLIANCEAUTH: stable | |
DB_HOST: 127.0.0.1 | |
DB_USER: root | |
DB_PASSWORD: temp_password_aa_tox_tests | |
- name: Upload Coverage Artifacts | |
if: ${{ | |
( | |
github.event_name == 'pull_request' || | |
( | |
github.event_name == 'push' && | |
github.ref == 'refs/heads/master' | |
) | |
) && | |
( | |
matrix.python-version == '3.10' && | |
matrix.django-version == '4.0' | |
) | |
}} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage-${{ github.event_name }}-${{ github.sha }} | |
path: coverage.xml | |
if-no-files-found: ignore | |
# test-coverage-aa-dev: | |
# needs: [ test-coverage-aa-stable ] | |
# name: AA Dev (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }} with ${{ matrix.database }}) | |
# runs-on: ubuntu-latest | |
# | |
# strategy: | |
# # Set Python and Django version to test for the alpha/beta release of AllianceAuth | |
# matrix: | |
# # Python versions | |
# python-version: | |
# - '3.8' | |
# - '3.9' | |
# - '3.10' | |
# - '3.11' | |
# # Django versions | |
# django-version: | |
# - '4.0' | |
# # MySQL versions to test against | |
# database: | |
# - mysql:5.7 | |
# - mysql:8.0 | |
# - mariadb:10.3 | |
# - mariadb:10.4 | |
# - mariadb:10.5 | |
# - mariadb:10.6 | |
# - mariadb:10.7 | |
# - mariadb:10.8 | |
# - mariadb:10.9 | |
# | |
# continue-on-error: ${{ matrix.python-version == '3.11' }} | |
# | |
# services: | |
# database: | |
# image: ${{ matrix.database }} | |
# env: | |
# MYSQL_ROOT_PASSWORD: foobar | |
# MYSQL_DATABASE: tox_allianceauth | |
# ports: | |
# - 3306:3306 | |
# options: --tmpfs /var/lib/mysql | |
# | |
# steps: | |
# - name: Checkout | |
# uses: actions/checkout@v4 | |
# | |
# - name: Install redis | |
# run: sudo apt-get install -y redis-tools redis-server | |
# | |
# - name: Verify that redis is up | |
# run: redis-cli ping | |
# | |
# - name: Setup Python ${{ matrix.python-version }} | |
# uses: actions/setup-python@v4 | |
# with: | |
# python-version: ${{ matrix.python-version }} | |
# | |
# - name: Install Tox and any other packages | |
# run: | | |
# python -m pip install --upgrade pip | |
# python -m pip install --upgrade tox tox-gh-actions | |
# | |
# - name: Run Tox | |
# # Run tox using the version of Python in `PATH` | |
# run: tox -v | |
# env: | |
# DJANGO: ${{ matrix.django-version }} | |
# ALLIANCEAUTH: testing | |
# DB_HOST: 127.0.0.1 | |
# DB_USER: root | |
# DB_PASSWORD: temp_password_aa_tox_tests | |
# Coverage upload to Codecov | |
upload-coverage: | |
if: ${{ | |
github.event_name == 'pull_request' || | |
(github.event_name == 'push' && github.ref == 'refs/heads/master') | |
}} | |
needs: [ test-coverage-aa-stable ] | |
# needs: [ test-coverage-aa-stable, test-coverage-aa-dev ] | |
name: Upload Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: Display the structure of the downloaded files | |
run: ls -Rrtlh | |
working-directory: artifacts | |
- name: Upload Coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos | |
files: artifacts/coverage-${{ github.event_name }}-${{ github.sha }}/coverage.xml # optional | |
# flags: unittests # optional | |
# name: codecov-umbrella # optional | |
# fail_ci_if_error: true # optional (default = false) | |
verbose: true # optional (default = false) | |
# Pypi Build Test | |
pypi-build-test: | |
needs: [ test-coverage-aa-stable ] | |
# needs: [ test-coverage-aa-stable, test-coverage-aa-dev ] | |
name: PyPi Build Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8' # Minimum supported Python version by AllianceAuth | |
- name: Install Tools | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade build | |
python -m pip install --upgrade setuptools wheel | |
- name: Package Build | |
env: | |
STACKMANAGER_VERSION: 9999 | |
run: | | |
python -m build | |
- name: Upload Build Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-${{ github.event_name }}-${{ github.sha }} | |
path: dist | |
if-no-files-found: ignore |