From c3f8af5636470752a1d70931f83efdc8b7fc0137 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:23:00 -0700 Subject: [PATCH] github/workflows: run CodeQL Go analysis for .go files only (#6540) ### Describe Your Changes The current CodeQL setup runs Go analysis on irrelevant files (see [this run](https://github.com/VictoriaMetrics/VictoriaMetrics/actions/runs/9380962792) as an example that took around 3 minutes, [PR link](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6419)). The PR makes sure the Go CodeQL job is triggered by `**.go` path pattern only. It contains 2 commits -- first for a better diff, and second for renaming the config file. ### Checklist The following checks are **mandatory**: - [x] My change adheres [VictoriaMetrics contributing guidelines](https://docs.victoriametrics.com/contributing/). --------- Signed-off-by: Arkadii Yakovets --- .github/workflows/codeql-analysis-go.yml | 62 ++++++++++++++ .github/workflows/codeql-analysis.yml | 103 ----------------------- 2 files changed, 62 insertions(+), 103 deletions(-) create mode 100644 .github/workflows/codeql-analysis-go.yml delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis-go.yml b/.github/workflows/codeql-analysis-go.yml new file mode 100644 index 000000000..91d6f2c1f --- /dev/null +++ b/.github/workflows/codeql-analysis-go.yml @@ -0,0 +1,62 @@ +name: 'CodeQL Go' + +on: + push: + branches: + - cluster + - master + paths: + - '**.go' + pull_request: + branches: + - cluster + - master + paths: + - '**.go' + +concurrency: + cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Go + id: go + uses: actions/setup-go@v5 + with: + cache: false + go-version: stable + + - name: Cache Go artifacts + uses: actions/cache@v4 + with: + path: | + ~/.cache/go-build + ~/go/bin + ~/go/pkg/mod + key: go-artifacts-${{ runner.os }}-codeql-analyze-${{ steps.go.outputs.go-version }}-${{ hashFiles('go.sum', 'Makefile', 'app/**/Makefile') }} + restore-keys: go-artifacts-${{ runner.os }}-codeql-analyze- + + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: go + + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: 'language:go' diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index f1dedb55d..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,103 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [master, cluster] - paths-ignore: - - "docs/**" - - "**.md" - - "**.txt" - - "**.js" - pull_request: - # The branches below must be a subset of the branches above - branches: [master, cluster] - paths-ignore: - - "docs/**" - - "**.md" - - "**.txt" - - "**.js" - schedule: - - cron: "30 18 * * 2" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: ["go"] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Go - id: go - uses: actions/setup-go@v5 - with: - go-version: stable - cache: false - if: ${{ matrix.language == 'go' }} - - - name: Cache Go artifacts - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg/mod - ~/go/bin - key: go-artifacts-${{ runner.os }}-codeql-analyze-${{ steps.go.outputs.go-version }}-${{ hashFiles('go.sum', 'Makefile', 'app/**/Makefile') }} - restore-keys: go-artifacts-${{ runner.os }}-codeql-analyze- - if: ${{ matrix.language == 'go' }} - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3