name: Frontend # Pipeline à choix multiple on: # workflow_dispatch -> lancement manuel des jobs workflow_dispatch: inputs: job_choice: required: true description: "Choix du job" type: choice default: all options: - build - sonarqube - test - all # lancer tous les jobs push: paths: - "apps/frontend/**" - ".github/workflows/frontend.yml" pull_request: paths: - "apps/frontend/**" - ".github/workflows/frontend.yml" # Ordre de lancement des jobs # build -> test -> sonarqube -> deploy jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24 cache: npm cache-dependency-path: apps/frontend/package-lock.json - run: npm ci --ignore-scripts working-directory: apps/frontend - run: npm run build working-directory: apps/frontend test: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 24 cache: npm cache-dependency-path: apps/frontend/package-lock.json - run: npm ci --ignore-scripts working-directory: apps/frontend - run: npm test -- --watch=false working-directory: apps/frontend sonarqube: needs: [build, test] 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 }} # deploy: # runs-on: ubuntu-latest # steps: # - run: echo "DEPLOY job is running"