Skip to content

Sublimation ✨ de la page /contact #5977

Sublimation ✨ de la page /contact

Sublimation ✨ de la page /contact #5977

Workflow file for this run

name: CI
permissions:
actions: read
# Enable Buildkit and let compose use it to speed up image building
env:
DATABASE_URL: "postgis://envergo:envergo@localhost:5432/envergo"
USE_DOCKER: False
LANG: "fr_FR.UTF-8"
LC_ALL: "fr_FR.UTF-8"
DJANGO_SETTINGS_MODULE: "config.settings.ci"
on:
pull_request:
branches: ["main"]
push:
branches: ["main"]
jobs:
linter:
runs-on: ubuntu-latest
steps:
- name: Checkout Code Repository
uses: actions/checkout@v6
- name: Set up Python 3.12
uses: actions/setup-python@v6.0.0
with:
python-version: 3.12.8
# Run all pre-commit hooks on all the files.
# Getting only staged files can be tricky in case a new PR is opened
# since the action is run on a branch in detached head state
- name: Install and Run Pre-commit
uses: pre-commit/action@v3.0.1
# With no caching at all the entire ci process takes 4m 30s to complete!
pytest:
runs-on: ubuntu-latest
# Configure the database service
services:
database:
image: postgis/postgis:14-master
env:
POSTGRES_USER: envergo
POSTGRES_PASSWORD: envergo
POSTGRES_DB: envergo
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Update package list
run: |
sudo apt update
- name: Install french locale
run: |
sudo apt install language-pack-fr
sudo locale-gen
- name: Activate french locale
run: |
sudo update-locale LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8"
- name: Set up the database
run: |
psql -d postgresql://envergo:envergo@localhost/template1 -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
psql -d postgresql://envergo:envergo@localhost/template1 -c 'CREATE EXTENSION IF NOT EXISTS postgis_raster;'
env:
PGPASSWORD: envergo
- name: Install dependencies
run: |
sudo apt install binutils libproj-dev gdal-bin gettext
- name: Checkout Code Repository
uses: actions/checkout@v6
- name: Set up Python 3.12
uses: actions/setup-python@v6.0.0
with:
python-version: 3.12.8
- name: Install python dependencies
run: pip install -r requirements/local.txt
- name: Install js dependencies
run: npm ci
- name: Build assets
run: bash bin/build_assets.sh
- name: Run Django Tests
run: pytest
e2e:
timeout-minutes: 60
runs-on: ubuntu-latest
# Configure the database service
services:
database:
image: postgis/postgis:14-master
env:
POSTGRES_USER: envergo
POSTGRES_PASSWORD: envergo
POSTGRES_DB: envergo
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 18
- name: Install dependencies
run: npm ci
- name: Install French locale
run: |
sudo apt update
sudo apt install -y language-pack-fr
sudo locale-gen fr_FR.UTF-8
sudo update-locale LANG=fr_FR.UTF-8 LC_ALL=fr_FR.UTF-8
- name: Install Playwright Browsers
run: npm run playwright:install
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Create .env file for GUH
run: echo "DJANGO_ENVERGO_HAIE_DOMAIN=localhost" >> .env
- name: Launch services for GUH
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml up -d
- name: Migrate database
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django python manage.py migrate
- name: Seed database
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django python manage.py loaddata e2e/fixtures/db_seed.json
- name: Build assets
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django bash bin/build_assets.sh
- name: Wait for services to be ready
run: wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries 10 http://localhost:3000/
- name: Run Playwright tests for GUH
run: npm run e2e-haie
- name: Stop services before relaunch
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml down --volumes --remove-orphans
- name: Create .env file for amenagement
run: |
sed -i '/^DJANGO_ENVERGO_HAIE_DOMAIN=/d' .env
echo "DJANGO_ENVERGO_AMENAGEMENT_DOMAIN=localhost" >> .env
- name: Launch services for amenagement
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml up -d --force-recreate --build
- name: Migrate database
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django python manage.py migrate
- name: Seed database
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django python manage.py loaddata e2e/fixtures/db_seed.json
- name: Build assets
run: docker compose -f docker-compose.yml -f docker-compose.e2e.yml run --rm django bash bin/build_assets.sh
- name: Wait for services to be ready
run: wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries 10 http://localhost:3000/
- name: Run Playwright tests for amenagement
run: npm run e2e-amenagement
- name: Dump Docker logs on failure
if: failure()
run: |
echo "=== Django logs ==="
docker compose logs django || true
echo "=== Node logs ==="
docker compose logs node || true
echo "=== Postgres logs ==="
docker compose logs postgres || true
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 30