From b7d397f1fb1884d1ebb00ba703d0371a1b2bfe5d Mon Sep 17 00:00:00 2001 From: Fernando Isidro Luna Date: Sat, 12 Oct 2024 19:49:18 -0600 Subject: [PATCH] ci: :green_heart: add ci workflow --- .github/workflows/build.yml | 17 ++++++++++ .github/workflows/sonarcloud.yml | 56 ++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/sonarcloud.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..32003b2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,17 @@ +name: build +on: + push: + branches: + - main + pull_request: + branches: + - main + schedule: + - cron: '0 16 * * 0' # sunday 16:00 + +jobs: + quality_code: + uses: nodecfdi/.github/.github/workflows/quality_code.yml@main + + tests: + uses: nodecfdi/.github/.github/workflows/tests.yml@main diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 0000000..0776d3e --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,56 @@ +name: sonarcloud +on: + push: + branches: + - main + +jobs: + tests-coverage: + uses: nodecfdi/.github/.github/workflows/test_coverage.yml@main + + sonarcloud-secrets: + name: SonarCloud check secrets are present + runs-on: ubuntu-latest + outputs: + github: ${{ steps.check-secrets.outputs.github }} + sonar: ${{ steps.check-secrets.outputs.sonar }} + steps: + - name: Check secrets are present + id: check-secrets + run: | + if [ -n "${{ secrets.GITHUB_TOKEN }}" ]; then + echo "github=yes" >> $GITHUB_OUTPUT + else + echo "github=no" >> $GITHUB_OUTPUT + echo "::warning ::GITHUB_TOKEN non set" + fi + if [ -n "${{ secrets.SONAR_TOKEN }}" ]; then + echo "sonar=yes" >> $GITHUB_OUTPUT + else + echo "sonar=no" >> $GITHUB_OUTPUT + echo "::warning ::SONAR_TOKEN non set" + fi + + sonarcloud: + name: SonarCloud Scan and Report + needs: ['tests-coverage', 'sonarcloud-secrets'] + if: ${{ needs.sonarcloud-secrets.outputs.github == 'yes' && needs.sonarcloud-secrets.outputs.sonar == 'yes' }} + runs-on: 'ubuntu-latest' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Unshallow clone to provide blame information + run: git fetch --unshallow + + - name: Obtain code coverage + uses: actions/download-artifact@v4 + with: + name: code-coverage + path: coverage + + - name: SonarCloud Scan + uses: sonarsource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}