chore(ci): set up Lighthouse auditing in CI #887
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 | |
with: | |
python-version: 3.12 | |
- 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 | |
with: | |
python-version: 3.12 | |
- 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: Create folders | |
run: | | |
sudo mkdir -p /logging app/static_files | |
sudo chown runner:runner /logging app/static_files | |
- name: Migrate database | |
run: | | |
cp .env.testing app/.env | |
cd app/ | |
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/ | |
include-hidden-files: true |