chore(ci): set up Lighthouse auditing in CI #869
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 Django | |
# Activates the workflow when there is a push or pull request in the repo | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
jobs: | |
test_project: | |
runs-on: ubuntu-latest # operating system your code will run on | |
services: | |
postgres: | |
image: postgres:16 | |
env: | |
POSTGRES_USER: sadilar | |
POSTGRES_PASSWORD: sadilar | |
POSTGRES_DB: test_db_1 | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements-test.txt | |
sudo apt-get install -y gettext | |
- name: Run linting tools | |
run: | | |
cd app/ | |
ruff format . | |
- name: Create logging folder | |
run: | | |
sudo mkdir -p /logging | |
sudo chown runner:runner /logging | |
- name: Compile Translation Messages | |
run: | | |
cp .env.testing app/.env | |
cd app/ | |
python manage.py makemessages --all | |
python manage.py compilemessages | |
- name: Run validate_templates | |
run: | | |
export DJANGO_TEST_PROCESSES=1 | |
cp .env.testing app/.env | |
cd app/ | |
mkdir -p static_files | |
python manage.py validate_templates --ignore-app django_filters | |
- name: Run Tests | |
run: | | |
cp .env.testing app/.env | |
cd app/ | |
mkdir -p static_files | |
python manage.py test | |
env: | |
DJANGO_SETTINGS_MODULE: app.settings | |
DATABASE_URL: postgres://sadilar:sadilar@localhost:5432/test_db | |
- name: Manager Check | |
run: | | |
cd app/ | |
python manage.py check | |
lighthouse: | |
runs-on: ubuntu-latest # operating system your code will run on | |
services: | |
postgres: | |
image: postgres:16 | |
env: | |
POSTGRES_USER: sadilar | |
POSTGRES_PASSWORD: sadilar | |
POSTGRES_DB: term_db | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements-test.txt | |
sudo apt-get install -y gettext | |
npm install -g @lhci/[email protected] | |
- name: Migrate database | |
run: | | |
cp .env.testing app/.env | |
cd app/ | |
DB_NAME=term_db DB_USER=sadilar DB_PASSWORD=sadilar python manage.py migrate | |
env: | |
DJANGO_SETTINGS_MODULE: app.settings | |
DATABASE_URL: postgres://sadilar:sadilar@localhost:5432/term_db | |
- name: Run Lighthouse | |
run: cd app && lhci autorun | |
- name: Archive Lighthouse results | |
if: always() # Ensure results are uploaded on failure too | |
uses: actions/upload-artifact@v4 | |
with: | |
name: lighthouse-report | |
path: app/.lighthouseci |