Update Go path documentation in analyze Action
This commit is contained in:
parent
82ba90b1d9
commit
632d58cb60
3 changed files with 21 additions and 17 deletions
18
lib/analyze-action.js
generated
18
lib/analyze-action.js
generated
|
|
@ -161,16 +161,18 @@ async function run() {
|
||||||
const gitHubVersion = await (0, api_client_1.getGitHubVersion)();
|
const gitHubVersion = await (0, api_client_1.getGitHubVersion)();
|
||||||
const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, actionsUtil.getTemporaryDirectory(), logger);
|
const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, actionsUtil.getTemporaryDirectory(), logger);
|
||||||
const memory = util.getMemoryFlag(actionsUtil.getOptionalInput("ram") || process.env["CODEQL_RAM"], logger);
|
const memory = util.getMemoryFlag(actionsUtil.getOptionalInput("ram") || process.env["CODEQL_RAM"], logger);
|
||||||
// Check that `which go` still points at the wrapper script we installed in the `init` Action,
|
// Check that `which go` still points at the same path it did when the `init` Action ran to ensure that no steps
|
||||||
// if the corresponding environment variable is set. This is to ensure that there isn't a step
|
// in-between performed any setup. We encourage users to perform all setup tasks before initializing CodeQL so that
|
||||||
// in the workflow after the `init` step which installs a different version of Go and takes
|
// the setup tasks do not interfere with our analysis.
|
||||||
// precedence in the PATH, thus potentially circumventing our workaround that allows tracing to work.
|
// Furthermore, if we installed a wrapper script in the `init` Action, we need to ensure that there isn't a step
|
||||||
const goWrapperPath = process.env[environment_1.EnvVar.GO_BINARY_LOCATION];
|
// in the workflow after the `init` step which installs a different version of Go and takes precedence in the PATH,
|
||||||
|
// thus potentially circumventing our workaround that allows tracing to work.
|
||||||
|
const goInitPath = process.env[environment_1.EnvVar.GO_BINARY_LOCATION];
|
||||||
if (process.env[environment_1.EnvVar.DID_AUTOBUILD_GOLANG] !== "true" &&
|
if (process.env[environment_1.EnvVar.DID_AUTOBUILD_GOLANG] !== "true" &&
|
||||||
goWrapperPath !== undefined) {
|
goInitPath !== undefined) {
|
||||||
const goBinaryPath = await (0, safe_which_1.safeWhich)("go");
|
const goBinaryPath = await (0, safe_which_1.safeWhich)("go");
|
||||||
if (goWrapperPath !== goBinaryPath) {
|
if (goInitPath !== goBinaryPath) {
|
||||||
core.warning(`Expected \`which go\` to return ${goWrapperPath}, but got ${goBinaryPath}: please ensure that the correct version of Go is installed before the \`codeql-action/init\` Action is used.`);
|
core.warning(`Expected \`which go\` to return ${goInitPath}, but got ${goBinaryPath}: please ensure that the correct version of Go is installed before the \`codeql-action/init\` Action is used.`);
|
||||||
(0, diagnostics_1.addDiagnostic)(config, languages_1.Language.go, (0, diagnostics_1.makeDiagnostic)("go/workflow/go-installed-after-codeql-init", "Go was installed after the `codeql-action/init` Action was run", {
|
(0, diagnostics_1.addDiagnostic)(config, languages_1.Language.go, (0, diagnostics_1.makeDiagnostic)("go/workflow/go-installed-after-codeql-init", "Go was installed after the `codeql-action/init` Action was run", {
|
||||||
markdownMessage: "To avoid interfering with the CodeQL analysis, perform all installation steps before calling the `github/codeql-action/init` Action.",
|
markdownMessage: "To avoid interfering with the CodeQL analysis, perform all installation steps before calling the `github/codeql-action/init` Action.",
|
||||||
visibility: {
|
visibility: {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -233,21 +233,23 @@ async function run() {
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check that `which go` still points at the wrapper script we installed in the `init` Action,
|
// Check that `which go` still points at the same path it did when the `init` Action ran to ensure that no steps
|
||||||
// if the corresponding environment variable is set. This is to ensure that there isn't a step
|
// in-between performed any setup. We encourage users to perform all setup tasks before initializing CodeQL so that
|
||||||
// in the workflow after the `init` step which installs a different version of Go and takes
|
// the setup tasks do not interfere with our analysis.
|
||||||
// precedence in the PATH, thus potentially circumventing our workaround that allows tracing to work.
|
// Furthermore, if we installed a wrapper script in the `init` Action, we need to ensure that there isn't a step
|
||||||
const goWrapperPath = process.env[EnvVar.GO_BINARY_LOCATION];
|
// in the workflow after the `init` step which installs a different version of Go and takes precedence in the PATH,
|
||||||
|
// thus potentially circumventing our workaround that allows tracing to work.
|
||||||
|
const goInitPath = process.env[EnvVar.GO_BINARY_LOCATION];
|
||||||
|
|
||||||
if (
|
if (
|
||||||
process.env[EnvVar.DID_AUTOBUILD_GOLANG] !== "true" &&
|
process.env[EnvVar.DID_AUTOBUILD_GOLANG] !== "true" &&
|
||||||
goWrapperPath !== undefined
|
goInitPath !== undefined
|
||||||
) {
|
) {
|
||||||
const goBinaryPath = await safeWhich("go");
|
const goBinaryPath = await safeWhich("go");
|
||||||
|
|
||||||
if (goWrapperPath !== goBinaryPath) {
|
if (goInitPath !== goBinaryPath) {
|
||||||
core.warning(
|
core.warning(
|
||||||
`Expected \`which go\` to return ${goWrapperPath}, but got ${goBinaryPath}: please ensure that the correct version of Go is installed before the \`codeql-action/init\` Action is used.`,
|
`Expected \`which go\` to return ${goInitPath}, but got ${goBinaryPath}: please ensure that the correct version of Go is installed before the \`codeql-action/init\` Action is used.`,
|
||||||
);
|
);
|
||||||
|
|
||||||
addDiagnostic(
|
addDiagnostic(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue