Skip to content

Commit c34f2e3

Browse files
authored
Allow access to user defined variables [Cherry pick from master and build the code for releases] (#17)
* Allowing user-defined env variable to be accessible (#16) * Allowing user-defined env variable to be accessible * Resolving PR comments * Cherry pick and compile the code
1 parent 2c2c8b0 commit c34f2e3

File tree

4 files changed

+104
-10
lines changed

4 files changed

+104
-10
lines changed

lib/main.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () {
4747
inlineScript = ` set -e >&2; echo '${START_SCRIPT_EXECUTION_MARKER}' >&2; ${inlineScript}`;
4848
scriptFileName = yield utils_1.createScriptFile(inlineScript);
4949
let startCommand = ` ${BASH_ARG}${CONTAINER_TEMP_DIRECTORY}/${scriptFileName} `;
50-
let gitHubEnvironmentVariables = '';
50+
let environmentVariables = '';
5151
for (let key in process.env) {
52-
if (key.toUpperCase().startsWith("GITHUB_") && key.toUpperCase() !== 'GITHUB_WORKSPACE' && process.env[key]) {
53-
gitHubEnvironmentVariables += ` -e "${key}=${process.env[key]}" `;
52+
if (!utils_1.checkIfEnvironmentVariableIsOmitted(key) && process.env[key]) {
53+
environmentVariables += ` -e "${key}=${process.env[key]}" `;
5454
}
5555
}
5656
/*
@@ -62,7 +62,7 @@ const run = () => __awaiter(void 0, void 0, void 0, function* () {
6262
*/
6363
let command = `run --workdir ${CONTAINER_WORKSPACE} -v ${process.env.GITHUB_WORKSPACE}:${CONTAINER_WORKSPACE} `;
6464
command += ` -v ${process.env.HOME}/.azure:/root/.azure -v ${utils_1.TEMP_DIRECTORY}:${CONTAINER_TEMP_DIRECTORY} `;
65-
command += ` ${gitHubEnvironmentVariables} `;
65+
command += ` ${environmentVariables} `;
6666
command += `-e GITHUB_WORKSPACE=${CONTAINER_WORKSPACE} `;
6767
command += `--name ${CONTAINER_NAME} `;
6868
command += ` mcr.microsoft.com/azure-cli:${azcliversion} ${startCommand}`;

lib/utils.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,48 @@ class NullOutstreamStringWritable extends stream.Writable {
5656
}
5757
exports.NullOutstreamStringWritable = NullOutstreamStringWritable;
5858
;
59+
exports.checkIfEnvironmentVariableIsOmitted = (key) => {
60+
const omitEnvironmentVariables = [
61+
'LANG',
62+
'HOSTNAME',
63+
'PWD',
64+
'HOME',
65+
'PYTHON_VERSION',
66+
'PYTHON_PIP_VERSION',
67+
'SHLVL',
68+
'PATH',
69+
'GPG_KEY',
70+
'CONDA',
71+
'AGENT_TOOLSDIRECTORY',
72+
'GITHUB_WORKSPACE',
73+
'RUNNER_PERFLOG',
74+
'RUNNER_WORKSPACE',
75+
'RUNNER_TEMP',
76+
'RUNNER_TRACKING_ID',
77+
'RUNNER_TOOL_CACHE',
78+
'DOTNET_SKIP_FIRST_TIME_EXPERIENCE',
79+
'JOURNAL_STREAM',
80+
'DEPLOYMENT_BASEPATH',
81+
'VCPKG_INSTALLATION_ROOT',
82+
'PERFLOG_LOCATION_SETTING'
83+
];
84+
const omitEnvironmentVariablesWithPrefix = [
85+
'JAVA_',
86+
'LEIN_',
87+
'M2_',
88+
'BOOST_',
89+
'GOROOT',
90+
'ANDROID_',
91+
'GRADLE_',
92+
'ANT_',
93+
'CHROME',
94+
'SELENIUM_',
95+
'INPUT_'
96+
];
97+
for (let i = 0; i < omitEnvironmentVariables.length; i++) {
98+
if (omitEnvironmentVariables[i] === key.toUpperCase()) {
99+
return true;
100+
}
101+
}
102+
return omitEnvironmentVariablesWithPrefix.some((prefix) => key.toUpperCase().startsWith(prefix));
103+
};

src/main.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as io from '@actions/io';
44
import * as os from 'os';
55
import * as path from 'path';
66

7-
import { createScriptFile, TEMP_DIRECTORY, NullOutstreamStringWritable, deleteFile, getCurrentTime } from './utils';
7+
import { createScriptFile, TEMP_DIRECTORY, NullOutstreamStringWritable, deleteFile, getCurrentTime, checkIfEnvironmentVariableIsOmitted } from './utils';
88

99
const START_SCRIPT_EXECUTION_MARKER: string = `Starting script execution via docker image mcr.microsoft.com/azure-cli:`;
1010
const BASH_ARG: string = `bash --noprofile --norc -e `;
@@ -35,10 +35,10 @@ const run = async () => {
3535
inlineScript = ` set -e >&2; echo '${START_SCRIPT_EXECUTION_MARKER}' >&2; ${inlineScript}`;
3636
scriptFileName = await createScriptFile(inlineScript);
3737
let startCommand: string = ` ${BASH_ARG}${CONTAINER_TEMP_DIRECTORY}/${scriptFileName} `;
38-
let gitHubEnvironmentVariables = '';
38+
let environmentVariables = '';
3939
for (let key in process.env){
40-
if (key.toUpperCase().startsWith("GITHUB_") && key.toUpperCase() !== 'GITHUB_WORKSPACE' && process.env[key]){
41-
gitHubEnvironmentVariables += ` -e "${key}=${process.env[key]}" `;
40+
if(!checkIfEnvironmentVariableIsOmitted(key) && process.env[key]){
41+
environmentVariables += ` -e "${key}=${process.env[key]}" `;
4242
}
4343
}
4444
/*
@@ -50,7 +50,7 @@ const run = async () => {
5050
*/
5151
let command: string = `run --workdir ${CONTAINER_WORKSPACE} -v ${process.env.GITHUB_WORKSPACE}:${CONTAINER_WORKSPACE} `;
5252
command += ` -v ${process.env.HOME}/.azure:/root/.azure -v ${TEMP_DIRECTORY}:${CONTAINER_TEMP_DIRECTORY} `;
53-
command += ` ${gitHubEnvironmentVariables} `;
53+
command += ` ${environmentVariables} `;
5454
command += `-e GITHUB_WORKSPACE=${CONTAINER_WORKSPACE} `;
5555
command += `--name ${CONTAINER_NAME} `;
5656
command += ` mcr.microsoft.com/azure-cli:${azcliversion} ${startCommand}`;

src/utils.ts

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,53 @@ export class NullOutstreamStringWritable extends stream.Writable {
4444
callback();
4545
}
4646
}
47-
};
47+
};
48+
49+
export const checkIfEnvironmentVariableIsOmitted = (key: string): boolean => {
50+
51+
const omitEnvironmentVariables: string [] = [
52+
'LANG',
53+
'HOSTNAME',
54+
'PWD',
55+
'HOME',
56+
'PYTHON_VERSION',
57+
'PYTHON_PIP_VERSION',
58+
'SHLVL',
59+
'PATH',
60+
'GPG_KEY',
61+
'CONDA',
62+
'AGENT_TOOLSDIRECTORY',
63+
'GITHUB_WORKSPACE',
64+
'RUNNER_PERFLOG',
65+
'RUNNER_WORKSPACE',
66+
'RUNNER_TEMP',
67+
'RUNNER_TRACKING_ID',
68+
'RUNNER_TOOL_CACHE',
69+
'DOTNET_SKIP_FIRST_TIME_EXPERIENCE',
70+
'JOURNAL_STREAM',
71+
'DEPLOYMENT_BASEPATH',
72+
'VCPKG_INSTALLATION_ROOT',
73+
'PERFLOG_LOCATION_SETTING'
74+
];
75+
76+
const omitEnvironmentVariablesWithPrefix: string [] = [
77+
'JAVA_',
78+
'LEIN_',
79+
'M2_',
80+
'BOOST_',
81+
'GOROOT',
82+
'ANDROID_',
83+
'GRADLE_',
84+
'ANT_',
85+
'CHROME',
86+
'SELENIUM_',
87+
'INPUT_'
88+
];
89+
for (let i = 0; i < omitEnvironmentVariables.length; i++){
90+
if (omitEnvironmentVariables[i] === key.toUpperCase()){
91+
return true;
92+
}
93+
}
94+
95+
return omitEnvironmentVariablesWithPrefix.some((prefix: string) => key.toUpperCase().startsWith(prefix));
96+
}

0 commit comments

Comments
 (0)