adding new option for default codescanning config #119
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ⚙️ CodeQL - Run Unit Tests (cpp) | |
on: | |
push: | |
branches: | |
- 'main' | |
pull_request: | |
branches: | |
- 'main' | |
workflow_dispatch: | |
jobs: | |
create-unit-test-matrix: | |
name: Create CodeQL Unit Test Matrix | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.export-unit-test-matrix.outputs.matrix }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install QLT | |
id: install-qlt | |
uses: ./.github/actions/install-qlt-local | |
with: | |
qlt-version: 'latest' | |
add-to-path: true | |
- name: Export unit test matrix | |
id: export-unit-test-matrix | |
run: | | |
qlt test run get-matrix --os-version ubuntu-latest --base example/ | |
run-test-suites: | |
name: Run Unit Tests | |
needs: create-unit-test-matrix | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: ${{ fromJSON(needs.create-unit-test-matrix.outputs.matrix) }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install QLT | |
id: install-qlt | |
uses: ./.github/actions/install-qlt-local | |
with: | |
qlt-version: 'latest' | |
add-to-path: true | |
- name: Install CodeQL | |
id: install-codeql | |
shell: bash | |
run: | | |
echo "Installing CodeQL" | |
qlt codeql run install --base example/ | |
echo "-----------------------------" | |
echo "CodeQL Home: $QLT_CODEQL_HOME" | |
echo "CodeQL Binary: $QLT_CODEQL_PATH" | |
- name: Verify Versions of Tooling | |
shell: bash | |
run: | | |
echo -e "Checking CodeQL Version:" | |
$QLT_CODEQL_PATH --version | |
echo -e "Checking QLT Version:" | |
echo "QLT Home: ${{ steps.install-qlt.outputs.qlt-home }}" | |
qlt version | |
- name: Install QL Packs | |
shell: bash | |
run: | | |
qlt query run install-packs --base example/ | |
- name: Run test suites | |
id: run-test-suites | |
env: | |
RUNNER_OS: ${{ runner.os }} | |
CODEQL_CLI: ${{ matrix.codeql_cli }} | |
CODEQL_STDLIB: ${{ matrix.codeql_standard_library }} | |
CODEQL_STDLIB_IDENT: ${{matrix.codeql_standard_library_ident}} | |
RUNNER_TMP: ${{ runner.temp }} | |
shell: bash | |
run: > | |
qlt test run execute-unit-tests | |
--codeql-args "--threads=0" | |
--num-threads 4 | |
--language cpp | |
--runner-os $RUNNER_OS | |
--work-dir $RUNNER_TMP | |
--base example/ | |
- name: Upload test results | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test-results-${{ runner.os }}-${{ matrix.codeql_cli }}-${{ matrix.codeql_standard_library_ident }} | |
path: | | |
${{ runner.temp }}/test_report_${{ runner.os }}_${{ matrix.codeql_cli }}_${{ matrix.codeql_standard_library_ident }}_slice_*.json | |
if-no-files-found: error | |
validate-test-results: | |
name: Validate test results | |
needs: [run-test-suites] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install QLT | |
id: install-qlt | |
uses: ./.github/actions/install-qlt-local | |
with: | |
qlt-version: 'latest' | |
add-to-path: true | |
- name: Collect test results | |
uses: actions/download-artifact@v2 | |
- name: Validate test results | |
run: | | |
qlt test run validate-unit-tests --pretty-print --results-directory . >> $GITHUB_STEP_SUMMARY | |
qlt test run validate-unit-tests --results-directory . | |