Skip to content

Commit 2723530

Browse files
authored
Merge pull request #1923 from github/henrymercer/fix-resolve-environment-aliases
Fix using the `resolve-environment` Action with language aliases
2 parents 1ea6a10 + 8f0e8b0 commit 2723530

11 files changed

+121
-55
lines changed

.github/workflows/__resolve-environment-action.yml

+37-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/codeql.js

+10-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/codeql.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment-action.js

+1-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment-action.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment.js

+13-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolve-environment.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
11
name: "Resolve environment"
2-
description: "Tests that the resolve-environment action works for Go"
3-
versions: ["stable-v2.13.4"]
2+
description: "Tests that the resolve-environment action works for Go and JavaScript/TypeScript"
3+
versions: ["stable-v2.13.4", "default", "latest", "nightly-latest"]
44
steps:
55
- uses: ./../action/init
66
with:
7-
languages: go
7+
languages: ${{ matrix.version == 'stable-v2.13.4' && 'go' || 'go,javascript-typescript' }}
88
tools: ${{ steps.prepare-test.outputs.tools-url }}
99

10-
- uses: ./../action/resolve-environment
11-
id: resolve-environment
10+
- name: Resolve environment for Go
11+
uses: ./../action/resolve-environment
12+
id: resolve-environment-go
1213
with:
1314
language: go
1415

15-
- name: "Fail if no Go configuration was returned"
16-
if: (!fromJSON(steps.resolve-environment.outputs.environment).configuration.go)
16+
- name: Fail if Go configuration missing
17+
if: (!fromJSON(steps.resolve-environment-go.outputs.environment).configuration.go)
18+
run: exit 1
19+
20+
- name: Resolve environment for JavaScript/TypeScript
21+
if: matrix.version != 'stable-v2.13.4'
22+
uses: ./../action/resolve-environment
23+
id: resolve-environment-js
24+
with:
25+
language: javascript-typescript
26+
27+
- name: Fail if JavaScript/TypeScript configuration present
28+
if: matrix.version != 'stable-v2.13.4' && fromJSON(steps.resolve-environment-js.outputs.environment).configuration.javascript
1729
run: exit 1

src/codeql.ts

+13-11
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ export interface CodeQL {
128128
*/
129129
resolveBuildEnvironment(
130130
workingDir: string | undefined,
131-
language: Language,
131+
language: string,
132132
): Promise<ResolveBuildEnvironmentOutput>;
133133

134134
/**
@@ -624,6 +624,7 @@ export async function getCodeQLForCmd(
624624
"--db-cluster",
625625
config.dbLocation,
626626
`--source-root=${sourceRoot}`,
627+
...(await getLanguageAliasingArguments(this)),
627628
...extraArgs,
628629
...getExtraOptionsFromEnv(["database", "init"]),
629630
],
@@ -737,20 +738,12 @@ export async function getCodeQLForCmd(
737738
}
738739
},
739740
async betterResolveLanguages() {
740-
const extraArgs: string[] = [];
741-
742-
if (
743-
await util.codeQlVersionAbove(this, CODEQL_VERSION_LANGUAGE_ALIASING)
744-
) {
745-
extraArgs.push("--extractor-include-aliases");
746-
}
747-
748741
const codeqlArgs = [
749742
"resolve",
750743
"languages",
751744
"--format=betterjson",
752745
"--extractor-options-verbosity=4",
753-
...extraArgs,
746+
...(await getLanguageAliasingArguments(this)),
754747
...getExtraOptionsFromEnv(["resolve", "languages"]),
755748
];
756749
const output = await runTool(cmd, codeqlArgs);
@@ -787,12 +780,13 @@ export async function getCodeQLForCmd(
787780
},
788781
async resolveBuildEnvironment(
789782
workingDir: string | undefined,
790-
language: Language,
783+
language: string,
791784
) {
792785
const codeqlArgs = [
793786
"resolve",
794787
"build-environment",
795788
`--language=${language}`,
789+
...(await getLanguageAliasingArguments(this)),
796790
...getExtraOptionsFromEnv(["resolve", "build-environment"]),
797791
];
798792
if (workingDir !== undefined) {
@@ -1082,6 +1076,7 @@ export async function getCodeQLForCmd(
10821076
"extractor",
10831077
"--format=json",
10841078
`--language=${language}`,
1079+
...(await getLanguageAliasingArguments(this)),
10851080
...getExtraOptionsFromEnv(["resolve", "extractor"]),
10861081
],
10871082
{
@@ -1470,3 +1465,10 @@ async function isDiagnosticsExportInvalidSarifFixed(
14701465
CODEQL_VERSION_DIAGNOSTICS_EXPORT_FIXED,
14711466
);
14721467
}
1468+
1469+
async function getLanguageAliasingArguments(codeql: CodeQL): Promise<string[]> {
1470+
if (await util.codeQlVersionAbove(codeql, CODEQL_VERSION_LANGUAGE_ALIASING)) {
1471+
return ["--extractor-include-aliases"];
1472+
}
1473+
return [];
1474+
}

src/resolve-environment-action.ts

+1-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
import { getGitHubVersion } from "./api-client";
99
import { CommandInvocationError } from "./codeql";
1010
import * as configUtils from "./config-utils";
11-
import { Language, parseLanguage } from "./languages";
1211
import { getActionsLogger } from "./logging";
1312
import { runResolveBuildEnvironment } from "./resolve-environment";
1413
import {
@@ -44,16 +43,6 @@ async function run() {
4443
return;
4544
}
4645

47-
const language: Language | undefined = parseLanguage(
48-
getRequiredInput("language"),
49-
);
50-
51-
if (language === undefined) {
52-
throw new Error(
53-
`Did not recognize the language "${getRequiredInput("language")}".`,
54-
);
55-
}
56-
5746
const gitHubVersion = await getGitHubVersion();
5847
checkGitHubVersionInRange(gitHubVersion, logger);
5948

@@ -69,7 +58,7 @@ async function run() {
6958
config.codeQLCmd,
7059
logger,
7160
workingDirectory,
72-
language,
61+
getRequiredInput("language"),
7362
);
7463
core.setOutput(ENVIRONMENT_OUTPUT_NAME, result);
7564
} catch (unwrappedError) {

0 commit comments

Comments
 (0)