Address FN involving CAP remote flow sources #1500
Workflow file for this run
This file contains hidden or 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 (javascript) | |
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@v4 | |
- name: Install QLT | |
id: install-qlt | |
uses: advanced-security/codeql-development-toolkit/.github/actions/install-qlt@main | |
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 | |
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@v4 | |
- name: Install QLT | |
id: install-qlt | |
uses: advanced-security/codeql-development-toolkit/.github/actions/install-qlt@main | |
with: | |
qlt-version: 'latest' | |
add-to-path: true | |
- name: Install CodeQL | |
id: install-codeql | |
shell: bash | |
run: | | |
echo "Installing CodeQL" | |
qlt codeql run install | |
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 | |
- name: Setup Node.js for CDS compilation | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: 'npm' | |
cache-dependency-path: 'extractors/cds/tools/package-lock.json' | |
- name: Verify Node.js and npm tools | |
run: | | |
echo "Node.js version: $(node --version)" | |
echo "npm version: $(npm --version)" | |
echo "npx version: $(npx --version)" | |
# Verify npx can access @sap/cds-dk without installing globally | |
echo "Testing npx access to @sap/cds-dk..." | |
npx --yes --package @sap/cds-dk@latest cds --version || echo "CDS will be installed per-project as needed" | |
# Compile .cds files to .cds.json files using the dedicated test script | |
- name: Compile CAP CDS files | |
run: | | |
# Use the dedicated CDS compilation script that includes proper version resolution | |
# This script follows the same logic as the CDS extractor's resolveCdsVersions function | |
./extractors/cds/tools/workflow/cds-compilation-for-actions.sh | |
- 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 }} | |
LGTM_INDEX_XML_MODE: all | |
LGTM_INDEX_FILETYPES: ".json:JSON\n.cds:JSON" | |
shell: bash | |
run: > | |
qlt test run execute-unit-tests | |
--codeql-args "--threads=0 --strict-test-discovery" | |
--num-threads 2 | |
--language javascript | |
--runner-os $RUNNER_OS | |
--work-dir $RUNNER_TMP | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- name: Install QLT | |
id: install-qlt | |
uses: advanced-security/codeql-development-toolkit/.github/actions/install-qlt@main | |
with: | |
qlt-version: 'latest' | |
add-to-path: true | |
- name: Collect test results | |
uses: actions/download-artifact@v4 | |
- 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 . | |