name: Security Scan on: push: branches: - main - release/** paths-ignore: - 'README.md' - 'CHANGELOG.md' - '.changelog/**' - '.tours/**' - 'contributing/**' pull_request: branches: - main - release/** paths-ignore: - 'README.md' - 'CHANGELOG.md' - '.changelog/**' - '.tours/**' - 'contributing/**' # cancel existing runs of the same workflow on the same ref concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true jobs: scan: runs-on: ${{ endsWith(github.repository, '-enterprise') && fromJSON('["self-hosted", "ondemand", "linux"]') || 'ubuntu-22.04' }} # The first check ensures this doesn't run on community-contributed PRs, who # won't have the permissions to run this job. if: ${{ (github.repository != 'hashicorp/nomad' || (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name)) && (github.actor != 'dependabot[bot]') && (github.actor != 'hc-github-team-nomad-core') }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 with: cache: ${{ contains(runner.name, 'Github Actions') }} go-version-file: .go-version cache-dependency-path: '**/go.sum' - name: Clone Security Scanner repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: hashicorp/security-scanner token: ${{ secrets.PRODSEC_SCANNER_READ_ONLY }} path: security-scanner ref: main - name: Scan id: scan uses: ./security-scanner with: repository: "$PWD" env: SECURITY_SCANNER_CONFIG_FILE: .github/scan.hcl # See scan.hcl at repository .github location for config. - name: SARIF Output shell: bash run: | jq . < results.sarif - name: Upload SARIF file uses: github/codeql-action/upload-sarif@8fd294e26a0e458834582b0fe4988d79966c7c0a # codeql-bundle-v2.18.4 with: sarif_file: results.sarif handle-failure: permissions: contents: read id-token: write needs: - scan if: always() && github.event_name == 'push' && contains(needs.*.result, 'failure') uses: ./.github/workflows/test-failure-notification.yml secrets: inherit with: actor: ${{ github.triggering_actor }} git-branch: ${{ github.ref_name }} workflow-run-id: ${{ github.run_id }} workflow-name: ${{ github.workflow }}