# Pipeline à multiple scénarios # pour l'environnement de dev name: Dev Pipeline (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/dev-front-pipeline.yml" pull_request: paths: - "apps/frontend/**" - ".github/workflows/dev-front-pipeline.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@v4 - uses: actions/setup-node@v4 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"