Skip to content

2026 Features

2026 Features #309

Workflow file for this run

name: CI
on:
push:
branches:
- prod
- dev
pull_request:
branches:
- prod
- dev
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
jobs:
lint-api:
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 11
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '23'
cache: 'pnpm'
cache-dependency-path: ./backend/pnpm-lock.yaml
- name: Install dependencies
working-directory: ./backend
run: pnpm install --frozen-lockfile
- name: Lint
working-directory: ./backend
run: pnpm run lint
lint-front:
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 11
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '23'
cache: 'pnpm'
cache-dependency-path: ./frontend/pnpm-lock.yaml
- name: Install dependencies
working-directory: ./frontend
run: pnpm install --frozen-lockfile
- name: Lint
working-directory: ./frontend
run: pnpm run lint
build-api:
runs-on: self-hosted
if: github.event_name == 'pull_request'
needs:
- lint-api
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 11
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '23'
cache: 'pnpm'
cache-dependency-path: ./backend/pnpm-lock.yaml
- name: Install dependencies
working-directory: ./backend
run: pnpm install --frozen-lockfile
- name: Build
working-directory: ./backend
run: pnpm run build-test
build-front:
runs-on: self-hosted
if: github.event_name == 'pull_request'
needs:
- lint-front
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 11
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: '23'
cache: 'pnpm'
cache-dependency-path: ./frontend/pnpm-lock.yaml
- name: Install dependencies
working-directory: ./frontend
run: pnpm install --frozen-lockfile
- name: Build
working-directory: ./frontend
run: pnpm run build
deploy-api:
runs-on: self-hosted
if : github.event_name == 'push'
environment: ${{ github.ref == 'refs/heads/dev' && 'development' || 'production' }}
needs:
- lint-api
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Login to registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Install docker
uses: docker/setup-buildx-action@v3
- name: API - Build and push
uses: docker/build-push-action@v6
with:
context: ./backend
push: true
tags: |
${{ secrets.REGISTRY_URL }}/integration/api:${{ github.ref == 'refs/heads/prod' && 'prod' || 'dev' }}
deploy-front:
runs-on: self-hosted
if : github.event_name == 'push'
environment: ${{ github.ref == 'refs/heads/dev' && 'development' || 'production' }}
needs:
- lint-front
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Login to registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Install docker
uses: docker/setup-buildx-action@v3
- name: Front- Build and push
uses: docker/build-push-action@v6
with:
context: ./frontend
push: true
build-args: |
VITE_API_URL=${{ vars.API_URL }}
VITE_SERVICE_URL=${{ vars.SERVICE_URL }}
VITE_ANALYTICS_WEBSITE_ID=${{ secrets.ANALYTICS_WEBSITE_ID }}
VITE_ROADBOOK_URL_FRENCH=${{ vars.ROADBOOK_URL_FRENCH }}
VITE_ROADBOOK_URL_ENGLISH=${{ vars.ROADBOOK_URL_ENGLISH }}
VITE_CAS_LOGIN_URL=${{ vars.CAS_LOGIN_URL }}
VITE_ASSOCIATION_ADDRESS=${{ vars.ASSOCIATION_ADDRESS }}
VITE_ASSOCIATION_EMAIL=${{ vars.ASSOCIATION_EMAIL }}
VITE_ASSOCIATION_NAME=${{ vars.ASSOCIATION_NAME }}
VITE_ASSOCIATION_PHONE=${{ vars.ASSOCIATION_PHONE }}
VITE_ASSOCIATION_RNA=${{ vars.ASSOCIATION_RNA }}
VITE_ASSOCIATION_RCS=${{ vars.ASSOCIATION_RCS }}
VITE_BDE_ADDRESS=${{ vars.BDE_ADDRESS }}
VITE_BDE_EMAIL=${{ vars.BDE_EMAIL }}
VITE_BDE_NAME=${{ vars.BDE_NAME }}
VITE_BDE_PHONE=${{ vars.BDE_PHONE }}
VITE_BDE_RNA=${{ vars.BDE_RNA }}
VITE_BDE_SIRET=${{ vars.BDE_SIRET }}
VITE_BDE_SIREN=${{ vars.BDE_SIREN }}
VITE_DPO_EMAIL=${{ vars.DPO_EMAIL }}
VITE_DPO_NAME=${{ vars.DPO_NAME }}
tags: |
${{ secrets.REGISTRY_URL }}/integration/front:${{ github.ref == 'refs/heads/prod' && 'prod' || 'dev' }}