Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,36 @@ nextest-version = "0.9.77"

[profile.default]
# A profile to run most tests, except tests that run longer than 10 seconds
default-filter = "not test(#*rate_limit_secondary) - test(#git::test::with_*) - test(#repo_get_sha)"
default-filter = """\
not test(#*rate_limit_secondary) \
- test(#git::test::with_*) \
- test(#git::test::repo_get_sha) \
- test(#*eval_version)
"""

# This will flag any test that runs longer than 10 seconds. Useful when writing new tests.
slow-timeout = "10s"

# show which tests were skipped
status-level = "skip"

[test-groups]
# keep cache-setup group serialized to avoid race conditions installing clang tools.
cache-setup = { max-threads = 1 }

[[profile.default.overrides]]
# Run these tests with the highest priority.
filter = 'test(#*eval_version)'
priority = 100
# assign it to a test group so that it can be run separately
test-group = 'cache-setup'

[profile.ci]
# A profile to run only tests that use clang-tidy and/or clang-format
# NOTE: This profile is intended to keep CI runtime low. Locally, use default or all profiles

# This is all tests in tests/ folder + unit test for --extra-args.
default-filter = "kind(test) + test(#*use_extra_args)"

# show which tests were skipped
status-level = "skip"
default-filter = "kind(test) + test(#*use_extra_args) + test(#*eval_version)"

# show log output from each test
success-output = "final"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
fi
- run: rustup update --no-self-update
if: steps.cache.outputs.cache-hit != 'true' || steps.validate.outputs.cache-valid == 'false'
- run: cargo build --bin cpp-linter --release
- run: cargo build --bin cpp-linter --features bin --release
if: steps.cache.outputs.cache-hit != 'true' || steps.validate.outputs.cache-valid == 'false'
- name: Upload build artifact
uses: actions/upload-artifact@v7
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/binary-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ jobs:
os: ubuntu-latest
vendored: true
cross: true
- target: powerpc64-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
# - target: powerpc64-unknown-linux-gnu
# os: ubuntu-latest
# vendored: true
# cross: true
- target: powerpc64le-unknown-linux-gnu
os: ubuntu-latest
vendored: true
Expand Down Expand Up @@ -131,7 +131,7 @@ jobs:
--bin cpp-linter
--release
--target ${{ matrix.target }}
${{ matrix.vendored && '--features openssl-vendored' || '' }}
--features ${{ matrix.vendored && 'bin,openssl-vendored' || 'bin' }}

- name: Prepare artifacts (unix)
if: runner.os != 'Windows'
Expand Down
138 changes: 20 additions & 118 deletions .github/workflows/run-dev-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: ['windows-latest', ubuntu-latest]
os: ["windows-latest", ubuntu-latest]

runs-on: ${{ matrix.os }}
steps:
Expand Down Expand Up @@ -93,125 +93,27 @@ jobs:
- if: runner.os == 'Linux'
run: sudo apt-get update

- name: Install clang 11
uses: ./.github/install-clang-action
with:
version: '11'

- name: Collect Coverage for clang v11
env:
CLANG_VERSION: '11'
run: nur test --profile ci

- name: Install clang 12
uses: ./.github/install-clang-action
with:
version: '12'

- name: Collect Coverage for clang v12
env:
CLANG_VERSION: '12'
run: nur test --profile ci

- name: Install clang 13
uses: ./.github/install-clang-action
with:
version: '13'

- name: Collect Coverage for clang v13
env:
CLANG_VERSION: '13'
run: nur test --profile ci

- name: Install clang 14
uses: ./.github/install-clang-action
with:
version: '14'

- name: Collect Coverage for clang v14
env:
CLANG_VERSION: '14'
run: nur test --profile ci

- name: Install clang 15
uses: ./.github/install-clang-action
with:
version: '15'

- name: Collect Coverage for clang v15
env:
CLANG_VERSION: '15'
run: nur test --profile ci

- name: Install clang 16
uses: ./.github/install-clang-action
with:
version: '16'

- name: Collect Coverage for clang v16
env:
CLANG_VERSION: '16'
run: nur test --profile ci
- name: Install nushell
uses: hustcer/setup-nu@920172d92eb04671776f3ba69d605d3b09351c30 # v3.22

- name: Install clang 17
uses: ./.github/install-clang-action
with:
version: '17'

- name: Collect Coverage for clang v17
env:
CLANG_VERSION: '17'
run: nur test --profile ci

- name: Install clang 18
uses: ./.github/install-clang-action
with:
version: '18'

- name: Collect Coverage for clang v18
- name: Run test suite
env:
CLANG_VERSION: '18'
run: nur test --profile ci

- name: Install clang v19
uses: ./.github/install-clang-action
with:
version: '19'

- name: Collect Coverage for clang v19
env:
CLANG_VERSION: '19'
run: nur test --profile ci

- name: Install clang v20
uses: ./.github/install-clang-action
with:
version: '20'

- name: Collect Coverage for clang v20
env:
CLANG_VERSION: '20'
run: nur test --profile ci

- name: Install clang v21
uses: ./.github/install-clang-action
with:
version: '21'

- name: Collect Coverage for clang v21
env:
CLANG_VERSION: '21'
run: nur test --profile ci

- name: Install clang v22
uses: ./.github/install-clang-action
with:
version: '22'

- name: Collect Coverage for clang v22
env:
CLANG_VERSION: '22'
run: nur test --profile all
MIN_CLANG_VERSION: "11"
MAX_CLANG_VERSION: "22"
shell: nu {0}
run: |-
let max_ver = $env.MAX_CLANG_VERSION | into int
let min_ver = $env.MIN_CLANG_VERSION | into int
for $ver in ($min_ver..$max_ver) {
print $"::group::Testing with clang v($ver)"
with-env { CLANG_VERSION: $"($ver)" } {
let test_profile = (
if ($ver == $max_ver) { "all" } else { "ci" }
)
nur test --profile $test_profile
}
print "::endgroup::"
}

- name: Generate Coverage HTML report
run: nur test llvm-cov
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repos:
exclude: bindings/node/.*package\.json
- id: check-docstring-first
- id: check-added-large-files
exclude: '^\.yarn/releases/yarn.*js'
exclude: '^\.yarn/releases/yarn.*js|pypi_clang.*\.json$'
- id: check-yaml
exclude: docs/mkdocs.yml
- id: check-toml
Expand Down
Loading
Loading