From fd1e206c6f9c0ddcbacf6ce965ae0957b0fa4667 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Fri, 1 Mar 2024 10:52:59 +0300 Subject: [PATCH 1/4] workflows: use proper Go version for linter It's the minimum supported one always. Signed-off-by: Roman Khimov --- .github/workflows/tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0c76dc2..4b07ba1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,6 +15,9 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' - name: golangci-lint uses: golangci/golangci-lint-action@v4 with: From bb6295630c5ab49130be311f6452fd01b36f7444 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Fri, 1 Mar 2024 10:54:02 +0300 Subject: [PATCH 2/4] workflows: fix uploading to Codecov And fail if it fails. Signed-off-by: Roman Khimov --- .github/workflows/tests.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4b07ba1..062769f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,10 +44,12 @@ jobs: run: make cover - name: Upload coverage results to Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 with: - fail_ci_if_error: false - path_to_write_report: ./coverage.txt + token: ${{ secrets.CODECOV_TOKEN }} + slug: nspcc-dev/neo-exporter + fail_ci_if_error: true + files: ./coverage.txt verbose: true tests: From b9f43144f69768d21d4eb4090b4ab4badc8f5c8f Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Fri, 1 Mar 2024 10:54:37 +0300 Subject: [PATCH 3/4] workflows: add CodeQL job Signed-off-by: Roman Khimov --- .github/workflows/tests.yml | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 062769f..70bc2e2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -72,3 +72,48 @@ jobs: - name: Run tests run: make test + + codeql: + name: CodeQL + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'go' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + 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@v2 + + # ℹī¸ 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@v2 From 1e9b9e710aeaa72c65b9c30b29a4442eeb976895 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Fri, 1 Mar 2024 11:09:20 +0300 Subject: [PATCH 4/4] workflows: test on Windows and amd64/arm64 MacOS Signed-off-by: Roman Khimov --- .github/workflows/tests.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 70bc2e2..a8b5cc3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,10 +54,28 @@ jobs: tests: name: Tests - runs-on: ubuntu-22.04 + runs-on: ${{ matrix.os }} strategy: matrix: + os: [ubuntu-22.04, windows-2022, macos-12, macos-14] go_versions: [ '1.20', '1.21', '1.22' ] + exclude: + # Only latest Go version for Windows and MacOS. + - os: windows-2022 + go_versions: '1.20' + - os: windows-2022 + go_versions: '1.21' + - os: macos-12 + go_versions: '1.20' + - os: macos-12 + go_versions: '1.21' + - os: macos-14 + go_versions: '1.20' + - os: macos-14 + go_versions: '1.21' + # Exclude latest Go version for Ubuntu as Coverage uses it. + - os: ubuntu-22.04 + go_versions: '1.22' fail-fast: false steps: - uses: actions/checkout@v4