Ver Fonte

add in CI stages

Signed-off-by: Alex Meijer <ameijer@kubecost.com>
Alex Meijer há 2 anos atrás
pai
commit
5909eeabaf
1 ficheiros alterados com 65 adições e 2 exclusões
  1. 65 2
      .github/workflows/pr.yaml

+ 65 - 2
.github/workflows/pr.yaml

@@ -38,17 +38,80 @@ jobs:
         name: Test
         run: |
           just test
-
+      - name: Get branch name 
+        shell: bash
+        run: echo "BRANCH_NAME=$(echo ${GITHUB_REF} | tr / -)" >> $GITHUB_ENV
+      - name: save coverage file
+        uses: actions/upload-artifact@v3
+        with:
+            path: ./opencost/opencost/coverage.out
+            name: coverage-${{ env.BRANCH_NAME }}-${{ github.sha }}
       -
         name: Build
         run: |
           just build-local
+
+
       - name: Submit Code Coverage
         uses: sonarsource/sonarqube-scan-action@master
         env:
           SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
           SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
-
+  submit-to-sonarqube:
+    needs: backend
+    name: Submit to sonar
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
+      - name: Get branch name 
+        shell: bash
+        run: echo "BRANCH_NAME=$(echo ${GITHUB_REF} | tr / -)" >> $GITHUB_ENV
+      - name: Restore coverage file
+        uses: actions/download-artifact@v3
+        with:
+          path: /tmp/coverage.out
+          name: coverage-${{ env.BRANCH_NAME }}-${{ github.sha }}
+      - name: copy output file
+        shell: bash
+        run: mv /tmp/coverage.out/coverage.out coverage.out
+      - uses: sonarsource/sonarqube-scan-action@master
+        env:
+          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      - uses: geekyeggo/delete-artifact@v2
+        with:
+          name: coverage-${{ env.BRANCH_NAME }}-${{ github.sha }}
+      - name: save report file
+        uses: actions/upload-artifact@v3
+        with:
+            path: .scannerwork
+            name: report-${{ env.BRANCH_NAME }}-${{ github.sha }}
+  code-quality-gate:  
+      needs: submit-to-sonarqube
+      name: Code Quality Gate
+      if: github.ref != 'refs/heads/develop'
+      runs-on: ubuntu-latest
+      steps: 
+        - name: Get branch name 
+          shell: bash
+          run: echo "BRANCH_NAME=$(echo ${GITHUB_REF} | tr / -)" >> $GITHUB_ENV
+        - name: Restore report file
+          uses: actions/download-artifact@v3
+          with:
+            path: /tmp/.scannerwork
+            name: report-${{ env.BRANCH_NAME }}-${{ github.sha }}
+        - name: copy output file
+          shell: bash
+          run: mv /tmp/.scannerwork .scannerwork
+        - uses: sonarsource/sonarqube-quality-gate-action@master
+          timeout-minutes: 5
+          env:
+            SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+        - uses: geekyeggo/delete-artifact@v2
+          with:
+            name: report-${{ env.BRANCH_NAME }}-${{ github.sha }}
   frontend:
     runs-on: ubuntu-latest
     steps: