Merge pull request #1149 from github/criemen/runner-autobuilders
autobuild: Update tests for C# on macOS
This commit is contained in:
commit
bbc2e7010f
6 changed files with 132 additions and 2 deletions
72
.github/workflows/__autobuild-action.yml
generated
vendored
Normal file
72
.github/workflows/__autobuild-action.yml
generated
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
# Warning: This file is generated automatically, and should not be modified.
|
||||||
|
# Instead, please modify the template in the pr-checks directory and run:
|
||||||
|
# pip install ruamel.yaml && python3 sync.py
|
||||||
|
# to regenerate this file.
|
||||||
|
|
||||||
|
name: PR Check - autobuild-action
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GO111MODULE: auto
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- releases/v1
|
||||||
|
- releases/v2
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- synchronize
|
||||||
|
- reopened
|
||||||
|
- ready_for_review
|
||||||
|
workflow_dispatch: {}
|
||||||
|
jobs:
|
||||||
|
autobuild-action:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: ubuntu-latest
|
||||||
|
version: latest
|
||||||
|
- os: macos-latest
|
||||||
|
version: latest
|
||||||
|
- os: windows-2019
|
||||||
|
version: latest
|
||||||
|
- os: windows-2022
|
||||||
|
version: latest
|
||||||
|
name: autobuild-action
|
||||||
|
timeout-minutes: 45
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Prepare test
|
||||||
|
id: prepare-test
|
||||||
|
uses: ./.github/prepare-test
|
||||||
|
with:
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
- uses: ./../action/init
|
||||||
|
with:
|
||||||
|
languages: csharp
|
||||||
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
||||||
|
- uses: ./../action/autobuild
|
||||||
|
env:
|
||||||
|
# Explicitly disable the CLR tracer.
|
||||||
|
COR_ENABLE_PROFILING: ''
|
||||||
|
COR_PROFILER: ''
|
||||||
|
COR_PROFILER_PATH_64: ''
|
||||||
|
CORECLR_ENABLE_PROFILING: ''
|
||||||
|
CORECLR_PROFILER: ''
|
||||||
|
CORECLR_PROFILER_PATH_64: ''
|
||||||
|
- uses: ./../action/analyze
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
- name: Check database
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd "$RUNNER_TEMP/codeql_databases"
|
||||||
|
if [[ ! -d csharp ]]; then
|
||||||
|
echo "Did not find a C# database"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
INTERNAL_CODEQL_ACTION_DEBUG_LOC: true
|
||||||
5
.github/workflows/pr-checks.yml
vendored
5
.github/workflows/pr-checks.yml
vendored
|
|
@ -414,7 +414,10 @@ jobs:
|
||||||
- name: Build code
|
- name: Build code
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
../action/runner/dist/codeql-runner-macos autobuild
|
. codeql-runner/codeql-env.sh
|
||||||
|
CODEQL_RUNNER="$(cat codeql-runner/codeql-env.json | jq -r '.CODEQL_RUNNER')"
|
||||||
|
echo "$CODEQL_RUNNER"
|
||||||
|
$CODEQL_RUNNER ../action/runner/dist/codeql-runner-macos autobuild
|
||||||
|
|
||||||
- name: Run analyze
|
- name: Run analyze
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
13
lib/codeql.js
generated
13
lib/codeql.js
generated
|
|
@ -510,6 +510,19 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
||||||
"-Dhttp.keepAlive=false",
|
"-Dhttp.keepAlive=false",
|
||||||
"-Dmaven.wagon.http.pool=false",
|
"-Dmaven.wagon.http.pool=false",
|
||||||
].join(" ");
|
].join(" ");
|
||||||
|
// On macOS, System Integrity Protection (SIP) typically interferes with
|
||||||
|
// CodeQL build tracing of protected binaries.
|
||||||
|
// The usual workaround is to prefix `$CODEQL_RUNNER` to build commands:
|
||||||
|
// `$CODEQL_RUNNER` (not to be confused with the deprecated CodeQL Runner tool)
|
||||||
|
// points to a simple wrapper binary included with the CLI, and the extra layer of
|
||||||
|
// process indirection helps the tracer bypass SIP.
|
||||||
|
// The above SIP workaround is *not* needed here.
|
||||||
|
// At the `autobuild` step in the Actions workflow, we assume the `init` step
|
||||||
|
// has successfully run, and will have exported `DYLD_INSERT_LIBRARIES`
|
||||||
|
// into the environment of subsequent steps, to activate the tracer.
|
||||||
|
// When `DYLD_INSERT_LIBRARIES` is set in the environment for a step,
|
||||||
|
// the Actions runtime introduces its own workaround for SIP
|
||||||
|
// (https://github.com/actions/runner/pull/416).
|
||||||
await runTool(autobuildCmd);
|
await runTool(autobuildCmd);
|
||||||
},
|
},
|
||||||
async extractScannedLanguage(databasePath, language, featureFlags) {
|
async extractScannedLanguage(databasePath, language, featureFlags) {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
28
pr-checks/checks/autobuild-action.yml
Normal file
28
pr-checks/checks/autobuild-action.yml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
name: "autobuild-action"
|
||||||
|
description: "Tests that the C# autobuild action works"
|
||||||
|
versions: ["latest"]
|
||||||
|
steps:
|
||||||
|
- uses: ./../action/init
|
||||||
|
with:
|
||||||
|
languages: csharp
|
||||||
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
||||||
|
- uses: ./../action/autobuild
|
||||||
|
env:
|
||||||
|
# Explicitly disable the CLR tracer.
|
||||||
|
COR_ENABLE_PROFILING: ""
|
||||||
|
COR_PROFILER: ""
|
||||||
|
COR_PROFILER_PATH_64: ""
|
||||||
|
CORECLR_ENABLE_PROFILING: ""
|
||||||
|
CORECLR_PROFILER: ""
|
||||||
|
CORECLR_PROFILER_PATH_64: ""
|
||||||
|
- uses: ./../action/analyze
|
||||||
|
env:
|
||||||
|
TEST_MODE: true
|
||||||
|
- name: Check database
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd "$RUNNER_TEMP/codeql_databases"
|
||||||
|
if [[ ! -d csharp ]]; then
|
||||||
|
echo "Did not find a C# database"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
@ -780,6 +780,20 @@ async function getCodeQLForCmd(
|
||||||
"-Dmaven.wagon.http.pool=false",
|
"-Dmaven.wagon.http.pool=false",
|
||||||
].join(" ");
|
].join(" ");
|
||||||
|
|
||||||
|
// On macOS, System Integrity Protection (SIP) typically interferes with
|
||||||
|
// CodeQL build tracing of protected binaries.
|
||||||
|
// The usual workaround is to prefix `$CODEQL_RUNNER` to build commands:
|
||||||
|
// `$CODEQL_RUNNER` (not to be confused with the deprecated CodeQL Runner tool)
|
||||||
|
// points to a simple wrapper binary included with the CLI, and the extra layer of
|
||||||
|
// process indirection helps the tracer bypass SIP.
|
||||||
|
|
||||||
|
// The above SIP workaround is *not* needed here.
|
||||||
|
// At the `autobuild` step in the Actions workflow, we assume the `init` step
|
||||||
|
// has successfully run, and will have exported `DYLD_INSERT_LIBRARIES`
|
||||||
|
// into the environment of subsequent steps, to activate the tracer.
|
||||||
|
// When `DYLD_INSERT_LIBRARIES` is set in the environment for a step,
|
||||||
|
// the Actions runtime introduces its own workaround for SIP
|
||||||
|
// (https://github.com/actions/runner/pull/416).
|
||||||
await runTool(autobuildCmd);
|
await runTool(autobuildCmd);
|
||||||
},
|
},
|
||||||
async extractScannedLanguage(
|
async extractScannedLanguage(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue