name: Coverage on: push: branches: - "main" pull_request: types: [opened, reopened, synchronize] branches: - "main" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: compliance: name: "License Compliance" runs-on: ubuntu-24.04 steps: - name: "Checkout Code" uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Check secret id: checksecret uses: ./.github/actions/exists with: value: ${{ secrets.FOSSA_API_KEY }} - name: "Run FOSSA Scan" if: steps.checksecret.outputs.result == 'true' uses: fossas/fossa-action@c0a7d013f84c8ee5e910593186598625513cc1e4 # v1.6.0 with: api-key: ${{ secrets.FOSSA_API_KEY }} - name: "Run FOSSA Test" if: steps.checksecret.outputs.result == 'true' uses: fossas/fossa-action@c0a7d013f84c8ee5e910593186598625513cc1e4 # v1.6.0 with: api-key: ${{ secrets.FOSSA_API_KEY }} run-tests: true sast: name: "SAST" runs-on: ubuntu-24.04 env: GO111MODULE: on permissions: security-events: write actions: read contents: read steps: - name: Checkout Source uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0 with: go-version-file: 'go.mod' - name: Run Gosec Security Scanner uses: securego/gosec@955a68d0d19f4afb7503068f95059f7d0c529017 # v2.22.3 with: args: '-no-fail -fmt sarif -out gosec.sarif ./...' - name: Upload SARIF file uses: github/codeql-action/upload-sarif@4c3e5362829f0b0bb62ff5f6c938d7f95574c306 with: sarif_file: gosec.sarif unit_tests: name: "Unit tests" runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0 with: go-version-file: 'go.mod' - name: Unit Test run: make test - name: Check secret id: checksecret uses: ./.github/actions/exists with: value: ${{ secrets.CODECOV_TOKEN }} - name: Upload Report to Codecov if: ${{ steps.checksecret.outputs.result == 'true' }} uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0 with: token: ${{ secrets.CODECOV_TOKEN }} slug: projectcapsule/capsule files: ./coverage.out fail_ci_if_error: true verbose: true