70 lines
1.8 KiB
YAML
70 lines
1.8 KiB
YAML
name: Frontend
|
|
|
|
on:
|
|
# workflow_dispatch -> lancement manuel des jobs
|
|
workflow_dispatch:
|
|
inputs:
|
|
job_choice:
|
|
type: choice
|
|
description: "Choix du job"
|
|
options:
|
|
- build
|
|
- sonarqube
|
|
- test
|
|
- deploy
|
|
- all
|
|
push:
|
|
paths:
|
|
- "apps/frontend/**"
|
|
- ".github/workflows/frontend.yml"
|
|
pull_request:
|
|
paths:
|
|
- "apps/frontend/**"
|
|
- ".github/workflows/frontend.yml"
|
|
|
|
|
|
jobs:
|
|
sonarqube:
|
|
name: SonarQube
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
- name: SonarQube Scan
|
|
uses: SonarSource/sonarqube-scan-action@7006c4492b2e0ee0f816d36501671557c97f5995 # v8.1.0
|
|
env:
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
|
|
test:
|
|
if: ${{ github.event.inputs.job_choice == 'test' }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
cache: npm
|
|
- run: npm ci
|
|
- run: npm test -- --watch=false
|
|
|
|
build:
|
|
# si l'utilisateur a choise le job 'build' ou l'ensemble des jobs avec l'option 'all'
|
|
if: ${{ github.event.inputs.job_choice == 'build' || github.event.inputs.job_choice == 'all' }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 24
|
|
cache: npm
|
|
|
|
- run: npm ci
|
|
- run: npm run build
|
|
|
|
# deploy:
|
|
# if: ${{ github.event.inputs.job_choice == 'deploy' }}
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - run: echo "DEPLOY job is running"
|