45 lines
1.7 KiB
YAML
45 lines
1.7 KiB
YAML
name: "Go: workaround for indirect tracing"
|
|
description: "Checks that our workaround for indirect tracing for Go 1.21+ on Linux works"
|
|
# only Linux is affected
|
|
operatingSystems: ["ubuntu"]
|
|
# pinned to a version which does not support statically linked binaries for indirect tracing
|
|
versions: ["default"]
|
|
steps:
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
# We need a Go version that ships with statically linked binaries on Linux
|
|
go-version: ">=1.21.0"
|
|
- uses: ./../action/init
|
|
with:
|
|
languages: go
|
|
tools: ${{ steps.prepare-test.outputs.tools-url }}
|
|
- name: Build code
|
|
shell: bash
|
|
run: go build main.go
|
|
- uses: ./../action/analyze
|
|
- shell: bash
|
|
run: |
|
|
if [[ -z "${CODEQL_ACTION_GO_BINARY}" ]]; then
|
|
echo "Expected the workaround for indirect tracing of static binaries to trigger, but the" \
|
|
"CODEQL_ACTION_GO_BINARY environment variable is not set."
|
|
exit 1
|
|
fi
|
|
if [[ ! -f "${CODEQL_ACTION_GO_BINARY}" ]]; then
|
|
echo "CODEQL_ACTION_GO_BINARY is set, but the corresponding script does not exist."
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# Once we start running Bash 4.2 in all environments, we can replace the
|
|
# `! -z` flag with the more elegant `-v` which confirms that the variable
|
|
# is actually unset and not potentially set to a blank value.
|
|
if [[ ! -z "${CODEQL_ACTION_DID_AUTOBUILD_GOLANG}" ]]; then
|
|
echo "Expected the Go autobuilder not to be run, but the" \
|
|
"CODEQL_ACTION_DID_AUTOBUILD_GOLANG environment variable was set."
|
|
exit 1
|
|
fi
|
|
cd "$RUNNER_TEMP/codeql_databases"
|
|
if [[ ! -d go ]]; then
|
|
echo "Did not find a Go database"
|
|
exit 1
|
|
fi
|