Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorLeitwolf2026-11-05 16:35:07 +0300
committerGitHub2026-11-05 16:35:07 +0300
commit0166e20a091f7380507b81fd5da0fef2d1c4314d (patch)
tree745a5efcbd69259874852b0c26cdf0bc95250d9f /.github/workflows
parent35275cb5b0d2cd0dc6975d8855a644690a565f45 (diff)
parent4cea96270d36eb6403136bc0141ae90a483589ae (diff)
downloadtazelish-main.tar.gz
Merge pull request #5 from Progmasoft/ci/qualityHEADmain
Add CodeQL, Codecov, Codacy, Renovate and actionlint
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci.yml44
-rw-r--r--.github/workflows/codeql.yml36
-rw-r--r--.github/workflows/zizmor.yml21
3 files changed, 101 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7d357e0..4e96a45 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -36,6 +36,50 @@ jobs:
- run: bazelisk test //...
- run: bazelisk build //:tazelish
+ coverage-report:
+ name: Coverage report
+ runs-on: ubuntu-24.04
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ with:
+ persist-credentials: false
+ # Clang's own coverage, read by the LLVM tools of the runner's Clang.
+ - run: >-
+ bazelisk coverage //Tests:tests
+ --combined_report=lcov
+ --instrumentation_filter=^//:
+ --repo_env=BAZEL_USE_LLVM_NATIVE_COVERAGE=1
+ --repo_env=BAZEL_LLVM_PROFDATA=/usr/bin/llvm-profdata-18
+ --repo_env=BAZEL_LLVM_COV=/usr/bin/llvm-cov-18
+ - run: cp "$(bazelisk info output_path)/_coverage/_coverage_report.dat" lcov.info
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: tazelish-coverage
+ path: lcov.info
+ if-no-files-found: error
+ retention-days: 1
+
+ coverage:
+ # Fork PRs cannot receive the OIDC token required for Codecov uploads.
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
+ needs: coverage-report
+ runs-on: ubuntu-24.04
+ timeout-minutes: 10
+ permissions:
+ contents: read
+ id-token: write
+ steps:
+ # Keep the OIDC-capable job apart from the build.
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: tazelish-coverage
+ - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
+ with:
+ use_oidc: true
+ files: lcov.info
+ fail_ci_if_error: true
+
required:
name: CI Required
if: always()
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 0000000..616e96d
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
+# SPDX-License-Identifier: MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0
+
+name: CodeQL
+on:
+ push:
+ branches: [main]
+ pull_request:
+ schedule:
+ - cron: "29 5 * * 1"
+permissions:
+ actions: read
+ contents: read
+ security-events: write
+jobs:
+ analyze:
+ name: ${{ matrix.language }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [actions, c-cpp]
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ with:
+ persist-credentials: false
+ - uses: github/codeql-action/init@33d7b85da1a04171e211befe2c739303b9a4c066 # v4.39.3
+ with:
+ languages: ${{ matrix.language }}
+ build-mode: none
+ config-file: ./.github/codeql/codeql-config.yml
+ queries: security-extended
+ - uses: github/codeql-action/analyze@33d7b85da1a04171e211befe2c739303b9a4c066 # v4.39.3
+ with:
+ category: /language:${{ matrix.language }}
diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml
index b81dac0..7b9a0e7 100644
--- a/.github/workflows/zizmor.yml
+++ b/.github/workflows/zizmor.yml
@@ -36,3 +36,24 @@ jobs:
- name: Audit the workflows
uses: zizmorcore/zizmor-action@cc914d7f3750a2d13d75c7f184a1060aa0e9d482 # v0.6.4
+
+ actionlint:
+ name: actionlint
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ permissions:
+ contents: read
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
+ with:
+ persist-credentials: false
+ - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
+ with:
+ go-version: 1.26.10
+ cache: false
+ # actionlint checks the syntax, the expressions and the shell steps of
+ # every workflow; zizmor above checks what makes one unsafe.
+ - name: Lint the workflows
+ run: |
+ go install github.com/rhysd/actionlint/cmd/actionlint@v1.7.12
+ "$(go env GOPATH)/bin/actionlint" -color