Skip to content

[pre-commit.ci] pre-commit autoupdate #932

[pre-commit.ci] pre-commit autoupdate

[pre-commit.ci] pre-commit autoupdate #932

name: Tests
on:
push:
branches:
- '**'
tags-ignore:
- '**'
pull_request:
branches:
- '**'
tags-ignore:
- '**'
jobs:
# Run pre-commit Checks
pre-commit:
name: Pre Commit Checks
runs-on: ubuntu-latest
steps:
# Checkout the repository
- name: Checkout
uses: actions/checkout@v4
# Set up Python
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: 'pyproject.toml' # Read the Python version from the pyproject.toml file
# Set up Node.js
- name: Setup Node.js
uses: actions/setup-node@v4
with:
# https://endoflife.date/nodejs
node-version: '20' # [LTS] End of Life: 30 Apr 2026
- run: npm install
- name: Run Pre Commit Checks
uses: pre-commit/[email protected]
# Run Test Coverage
test-coverage:
needs: [pre-commit]
name: AA Latest (Python ${{ matrix.python-version }} with ${{ matrix.database }})
runs-on: ubuntu-latest
strategy:
# Set Python versions to test against
matrix:
python-version:
# https://endoflife.date/python
- '3.10' # [EOL] End of Life: 31 Oct 2026
- '3.11' # [EOL] End of Life: 31 Dec 2027
- '3.12' # [EOL] End of Life: 31 Dec 2028
# MySQL versions to test against
database:
# https://endoflife.date/mysql
- mysql:8.0 # [LTS] Maintained until: 30 Apr 2026
- mysql:8.4 # [LTS] Maintained until: 30 Apr 2032
# https://endoflife.date/mariadb and https://mariadb.com/kb/en/mariadb-server-release-dates/
- mariadb:10.5 # [LTS] Maintained until: 24 Jun 2025
- mariadb:10.6 # [LTS] Maintained until: 06 Jul 2026
- mariadb:10.11 # [LTS] Maintained until: 16 Feb 2028
- mariadb:11.4 # [LTS] Maintained until: 29 May 2029
# continue-on-error: ${{ matrix.python-version == '3.12' }}
# Set up services
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:
# Checkout the repository
- name: Checkout
uses: actions/checkout@v4
# Install redis
- name: Install redis
uses: shogo82148/actions-setup-redis@v1
with:
redis-version: "latest"
# Verify that redis is up
- name: Verify that redis is up
run: redis-cli ping
# Set up Python
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
# Install Tox and any other packages
- name: Install Tox and any other packages
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox tox-gh-actions
# Run Tox with the specified environment
- name: Run Tox
env:
TOX_ENV: allianceauth-latest
DB_HOST: 127.0.0.1
DB_USER: root
DB_PASSWORD: temp_password_aa_tox_tests
run: tox -v -e ${{ env.TOX_ENV }}
# Upload coverage to Codecov
- name: Upload Coverage
if: ${{
(
github.event_name == 'pull_request'
|| (
github.event_name == 'push'
&& github.ref == 'refs/heads/master'
)
)
&& (
matrix.python-version == '3.12'
&& matrix.database == 'mariadb:10.11'
)
}}
uses: codecov/codecov-action@v4
with:
# token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.xml # optional
# flags: unittests # optional
# name: codecov-umbrella # optional
# fail_ci_if_error: true # optional (default = false)
verbose: true # optional (default = false)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# Run PyPi Build Test
pypi-build-test:
needs: [ test-coverage ]
name: PyPi Build Test
runs-on: ubuntu-latest
steps:
# Checkout the repository
- name: Checkout
uses: actions/checkout@v4
# Set up Python
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: 'pyproject.toml' # Read the Python version from the pyproject.toml file
# Install Tools
- name: Install Tools
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade build
python -m pip install --upgrade setuptools wheel
# Build Package
- name: Package Build
env:
STACKMANAGER_VERSION: 9999
run: |
python -m build
# Upload Build Artifacts
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{ github.event_name }}-${{ github.sha }}
path: dist
if-no-files-found: ignore