Merge pull request #441 from adityasharad/tests/matrix-tools-latest
PR checks: Run integration tests against both `tools: null` and `tools: latest`
This commit is contained in:
commit
0c2281fb06
2 changed files with 119 additions and 6 deletions
47
.github/workflows/codeql.yml
vendored
47
.github/workflows/codeql.yml
vendored
|
|
@ -7,10 +7,56 @@ on:
|
||||||
branches: [main, v1]
|
branches: [main, v1]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
# Identify the CodeQL tool versions to use in the analysis job.
|
||||||
|
check-codeql-versions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.compare.outputs.versions }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Init with default CodeQL bundle from the VM image
|
||||||
|
id: init-default
|
||||||
|
uses: ./init
|
||||||
|
with:
|
||||||
|
languages: javascript
|
||||||
|
- name: Remove empty database
|
||||||
|
# allows us to run init a second time
|
||||||
|
run: |
|
||||||
|
rm -rf "$RUNNER_TEMP/codeql_databases"
|
||||||
|
- name: Init with latest CodeQL bundle
|
||||||
|
id: init-latest
|
||||||
|
uses: ./init
|
||||||
|
with:
|
||||||
|
tools: latest
|
||||||
|
languages: javascript
|
||||||
|
- name: Compare default and latest CodeQL bundle versions
|
||||||
|
id: compare
|
||||||
|
env:
|
||||||
|
CODEQL_DEFAULT: ${{ steps.init-default.outputs.codeql-path }}
|
||||||
|
CODEQL_LATEST: ${{ steps.init-latest.outputs.codeql-path }}
|
||||||
|
run: |
|
||||||
|
CODEQL_VERSION_DEFAULT="$("$CODEQL_DEFAULT" version --format terse)"
|
||||||
|
CODEQL_VERSION_LATEST="$("$CODEQL_LATEST" version --format terse)"
|
||||||
|
echo "Default CodeQL bundle version is $CODEQL_VERSION_DEFAULT"
|
||||||
|
echo "Latest CodeQL bundle version is $CODEQL_VERSION_LATEST"
|
||||||
|
if [[ "$CODEQL_VERSION_DEFAULT" == "$CODEQL_VERSION_LATEST" ]]; then
|
||||||
|
# Just use `tools: null` to avoid duplication in the analysis job.
|
||||||
|
VERSIONS_JSON='[null]'
|
||||||
|
else
|
||||||
|
# Use both `tools: null` and `tools: latest` in the analysis job.
|
||||||
|
VERSIONS_JSON='[null, "latest"]'
|
||||||
|
fi
|
||||||
|
# Output a JSON-encoded list with the distinct versions to test against.
|
||||||
|
echo "Suggested matrix config for analysis job: $VERSIONS_JSON"
|
||||||
|
echo "::set-output name=versions::${VERSIONS_JSON}"
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
needs: [check-codeql-versions]
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest,windows-latest,macos-latest]
|
os: [ubuntu-latest,windows-latest,macos-latest]
|
||||||
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -20,6 +66,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
languages: javascript
|
languages: javascript
|
||||||
config-file: ./.github/codeql/codeql-config.yml
|
config-file: ./.github/codeql/codeql-config.yml
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
# confirm steps.init.outputs.codeql-path points to the codeql binary
|
# confirm steps.init.outputs.codeql-path points to the codeql binary
|
||||||
- name: Print CodeQL Version
|
- name: Print CodeQL Version
|
||||||
run: ${{steps.init.outputs.codeql-path}} version --format=json
|
run: ${{steps.init.outputs.codeql-path}} version --format=json
|
||||||
|
|
|
||||||
78
.github/workflows/pr-checks.yml
vendored
78
.github/workflows/pr-checks.yml
vendored
|
|
@ -80,13 +80,65 @@ jobs:
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
multi-language-repo_test-custom-queries-and-remote-config:
|
# Identify the CodeQL tool versions to integration test against.
|
||||||
|
check-codeql-versions:
|
||||||
needs: [check-js, check-node-modules]
|
needs: [check-js, check-node-modules]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.compare.outputs.versions }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Move codeql-action
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir ../action
|
||||||
|
mv * .github ../action/
|
||||||
|
mv ../action/tests/multi-language-repo/{*,.github} .
|
||||||
|
mv ../action/.github/workflows .github
|
||||||
|
- name: Init with default CodeQL bundle from the VM image
|
||||||
|
id: init-default
|
||||||
|
uses: ./../action/init
|
||||||
|
with:
|
||||||
|
languages: javascript
|
||||||
|
- name: Remove empty database
|
||||||
|
# allows us to run init a second time
|
||||||
|
run: |
|
||||||
|
rm -rf "$RUNNER_TEMP/codeql_databases"
|
||||||
|
- name: Init with latest CodeQL bundle
|
||||||
|
id: init-latest
|
||||||
|
uses: ./../action/init
|
||||||
|
with:
|
||||||
|
tools: latest
|
||||||
|
languages: javascript
|
||||||
|
- name: Compare default and latest CodeQL bundle versions
|
||||||
|
id: compare
|
||||||
|
env:
|
||||||
|
CODEQL_DEFAULT: ${{ steps.init-default.outputs.codeql-path }}
|
||||||
|
CODEQL_LATEST: ${{ steps.init-latest.outputs.codeql-path }}
|
||||||
|
run: |
|
||||||
|
CODEQL_VERSION_DEFAULT="$("$CODEQL_DEFAULT" version --format terse)"
|
||||||
|
CODEQL_VERSION_LATEST="$("$CODEQL_LATEST" version --format terse)"
|
||||||
|
echo "Default CodeQL bundle version is $CODEQL_VERSION_DEFAULT"
|
||||||
|
echo "Latest CodeQL bundle version is $CODEQL_VERSION_LATEST"
|
||||||
|
if [[ "$CODEQL_VERSION_DEFAULT" == "$CODEQL_VERSION_LATEST" ]]; then
|
||||||
|
# Just use `tools: null` to avoid duplication in the integration tests.
|
||||||
|
VERSIONS_JSON='[null]'
|
||||||
|
else
|
||||||
|
# Use both `tools: null` and `tools: latest` in the integration tests.
|
||||||
|
VERSIONS_JSON='[null, "latest"]'
|
||||||
|
fi
|
||||||
|
# Output a JSON-encoded list with the distinct versions to test against.
|
||||||
|
echo "Suggested matrix config for integration tests: $VERSIONS_JSON"
|
||||||
|
echo "::set-output name=versions::${VERSIONS_JSON}"
|
||||||
|
|
||||||
|
multi-language-repo_test-custom-queries-and-remote-config:
|
||||||
|
needs: [check-js, check-node-modules, check-codeql-versions]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
tools: [~, latest]
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -112,11 +164,12 @@ jobs:
|
||||||
|
|
||||||
# Currently is not possible to analyze Go in conjunction with other languages in macos
|
# Currently is not possible to analyze Go in conjunction with other languages in macos
|
||||||
multi-language-repo_test-go-custom-queries:
|
multi-language-repo_test-go-custom-queries:
|
||||||
needs: [check-js, check-node-modules]
|
needs: [check-js, check-node-modules, check-codeql-versions]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -136,6 +189,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
languages: go
|
languages: go
|
||||||
config-file: ./.github/codeql/custom-queries.yml
|
config-file: ./.github/codeql/custom-queries.yml
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
- name: Build code
|
- name: Build code
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./build.sh
|
run: ./build.sh
|
||||||
|
|
@ -144,11 +198,12 @@ jobs:
|
||||||
TEST_MODE: true
|
TEST_MODE: true
|
||||||
|
|
||||||
go-custom-tracing:
|
go-custom-tracing:
|
||||||
needs: [check-js, check-node-modules]
|
needs: [check-js, check-node-modules, check-codeql-versions]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
env:
|
env:
|
||||||
CODEQL_EXTRACTOR_GO_BUILD_TRACING: "on"
|
CODEQL_EXTRACTOR_GO_BUILD_TRACING: "on"
|
||||||
|
|
@ -169,6 +224,7 @@ jobs:
|
||||||
- uses: ./../action/init
|
- uses: ./../action/init
|
||||||
with:
|
with:
|
||||||
languages: go
|
languages: go
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
- name: Build code
|
- name: Build code
|
||||||
shell: bash
|
shell: bash
|
||||||
run: go build main.go
|
run: go build main.go
|
||||||
|
|
@ -177,7 +233,11 @@ jobs:
|
||||||
TEST_MODE: true
|
TEST_MODE: true
|
||||||
|
|
||||||
go-custom-tracing-autobuild:
|
go-custom-tracing-autobuild:
|
||||||
needs: [check-js, check-node-modules]
|
needs: [check-js, check-node-modules, check-codeql-versions]
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
# No need to test Go autobuild on multiple OSes since
|
# No need to test Go autobuild on multiple OSes since
|
||||||
# we're testing Go custom tracing with a manual build on all OSes.
|
# we're testing Go custom tracing with a manual build on all OSes.
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
@ -196,6 +256,7 @@ jobs:
|
||||||
- uses: ./../action/init
|
- uses: ./../action/init
|
||||||
with:
|
with:
|
||||||
languages: go
|
languages: go
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
- uses: ./../action/autobuild
|
- uses: ./../action/autobuild
|
||||||
- uses: ./../action/analyze
|
- uses: ./../action/analyze
|
||||||
env:
|
env:
|
||||||
|
|
@ -235,7 +296,11 @@ jobs:
|
||||||
TEST_MODE: true
|
TEST_MODE: true
|
||||||
|
|
||||||
test-proxy:
|
test-proxy:
|
||||||
needs: [check-js, check-node-modules]
|
needs: [check-js, check-node-modules, check-codeql-versions]
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
tools: ${{ fromJson(needs.check-codeql-versions.outputs.versions) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: ubuntu:18.04
|
image: ubuntu:18.04
|
||||||
|
|
@ -259,6 +324,7 @@ jobs:
|
||||||
- uses: ./../action/init
|
- uses: ./../action/init
|
||||||
with:
|
with:
|
||||||
languages: javascript
|
languages: javascript
|
||||||
|
tools: ${{ matrix.tools }}
|
||||||
- uses: ./../action/analyze
|
- uses: ./../action/analyze
|
||||||
env:
|
env:
|
||||||
TEST_MODE: true
|
TEST_MODE: true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue