mirror of
https://github.com/codecov/codecov-action.git
synced 2025-12-23 20:27:02 +08:00
fix: set safe directory (#1304)
* fix: set safe directory * fix: naming * fix: update tests * fix: dont even check * fix: add set safe directory * fix: write test for setSafeDirectory
This commit is contained in:
40
.github/workflows/main.yml
vendored
40
.github/workflows/main.yml
vendored
@@ -42,3 +42,43 @@ jobs:
|
|||||||
version: v0.2.0
|
version: v0.2.0
|
||||||
verbose: true
|
verbose: true
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|
||||||
|
run-container:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: node:18
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.1.1
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm install
|
||||||
|
- name: Lint
|
||||||
|
run: npm run lint
|
||||||
|
- name: Run tests and collect coverage
|
||||||
|
run: npm run test
|
||||||
|
- name: Upload coverage to Codecov (script)
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
files: ./coverage/script/coverage-final.json
|
||||||
|
flags: script,${{ matrix.os }}
|
||||||
|
name: codecov-script
|
||||||
|
verbose: true
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
- name: Upload coverage to Codecov (demo)
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
|
||||||
|
file: ./coverage/coverage-final.json
|
||||||
|
flags: demo,${{ matrix.os }}
|
||||||
|
name: codecov-demo
|
||||||
|
verbose: true
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
- name: Upload coverage to Codecov (version)
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
|
||||||
|
file: ./coverage/coverage-final.json
|
||||||
|
flags: version,${{ matrix.os }}
|
||||||
|
name: codecov-version
|
||||||
|
version: v0.2.0
|
||||||
|
verbose: true
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|||||||
10
action.yml
10
action.yml
@@ -14,11 +14,14 @@ inputs:
|
|||||||
directory:
|
directory:
|
||||||
description: 'Directory to search for coverage reports.'
|
description: 'Directory to search for coverage reports.'
|
||||||
required: false
|
required: false
|
||||||
|
disable_file_fixes:
|
||||||
|
description: 'Disable file fixes to ignore common lines from coverage (e.g. blank lines or empty brackets)'
|
||||||
|
required: false
|
||||||
disable_search:
|
disable_search:
|
||||||
description: 'Disable search for coverage files. This is helpful when specifying what files you want to upload with the --file option.'
|
description: 'Disable search for coverage files. This is helpful when specifying what files you want to upload with the --file option.'
|
||||||
required: false
|
required: false
|
||||||
disable_file_fixes:
|
disable_safe_directory:
|
||||||
description: 'Disable file fixes to ignore common lines from coverage (e.g. blank lines or empty brackets)'
|
description: 'Disable setting safe directory. Set to true to disable.'
|
||||||
required: false
|
required: false
|
||||||
dry_run:
|
dry_run:
|
||||||
description: "Don't upload files to Codecov"
|
description: "Don't upload files to Codecov"
|
||||||
@@ -41,6 +44,9 @@ inputs:
|
|||||||
flags:
|
flags:
|
||||||
description: 'Flag upload to group coverage metrics (e.g. unittests | integration | ui,chrome)'
|
description: 'Flag upload to group coverage metrics (e.g. unittests | integration | ui,chrome)'
|
||||||
required: false
|
required: false
|
||||||
|
git_service:
|
||||||
|
description: 'Override the git_service (e.g. github_enterprise)'
|
||||||
|
required: false
|
||||||
handle_no_reports_found:
|
handle_no_reports_found:
|
||||||
description: 'Raise no exceptions when no coverage reports found'
|
description: 'Raise no exceptions when no coverage reports found'
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
51
dist/index.js
vendored
51
dist/index.js
vendored
@@ -32261,6 +32261,7 @@ const isTrue = (variable) => {
|
|||||||
};
|
};
|
||||||
const buildCommitExec = () => {
|
const buildCommitExec = () => {
|
||||||
const commitParent = core.getInput('commit_parent');
|
const commitParent = core.getInput('commit_parent');
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const overrideBranch = core.getInput('override_branch');
|
const overrideBranch = core.getInput('override_branch');
|
||||||
const overrideCommit = core.getInput('override_commit');
|
const overrideCommit = core.getInput('override_commit');
|
||||||
const overridePr = core.getInput('override_pr');
|
const overridePr = core.getInput('override_pr');
|
||||||
@@ -32285,6 +32286,7 @@ const buildCommitExec = () => {
|
|||||||
if (commitParent) {
|
if (commitParent) {
|
||||||
commitExecArgs.push('--parent-sha', `${commitParent}`);
|
commitExecArgs.push('--parent-sha', `${commitParent}`);
|
||||||
}
|
}
|
||||||
|
commitExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
if (overrideBranch) {
|
if (overrideBranch) {
|
||||||
commitExecArgs.push('-B', `${overrideBranch}`);
|
commitExecArgs.push('-B', `${overrideBranch}`);
|
||||||
}
|
}
|
||||||
@@ -32329,6 +32331,7 @@ const buildGeneralExec = () => {
|
|||||||
return { args, verbose };
|
return { args, verbose };
|
||||||
};
|
};
|
||||||
const buildReportExec = () => {
|
const buildReportExec = () => {
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const overrideCommit = core.getInput('override_commit');
|
const overrideCommit = core.getInput('override_commit');
|
||||||
const overridePr = core.getInput('override_pr');
|
const overridePr = core.getInput('override_pr');
|
||||||
const slug = core.getInput('slug');
|
const slug = core.getInput('slug');
|
||||||
@@ -32349,6 +32352,7 @@ const buildReportExec = () => {
|
|||||||
if (token) {
|
if (token) {
|
||||||
reportOptions.env.CODECOV_TOKEN = token;
|
reportOptions.env.CODECOV_TOKEN = token;
|
||||||
}
|
}
|
||||||
|
reportExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
if (overrideCommit) {
|
if (overrideCommit) {
|
||||||
reportExecArgs.push('-C', `${overrideCommit}`);
|
reportExecArgs.push('-C', `${overrideCommit}`);
|
||||||
}
|
}
|
||||||
@@ -32375,6 +32379,7 @@ const buildReportExec = () => {
|
|||||||
};
|
};
|
||||||
const buildUploadExec = () => {
|
const buildUploadExec = () => {
|
||||||
const disableFileFixes = isTrue(core.getInput('disable_file_fixes'));
|
const disableFileFixes = isTrue(core.getInput('disable_file_fixes'));
|
||||||
|
const disableSafeDirectory = isTrue(core.getInput('diable_safe_directory'));
|
||||||
const disableSearch = isTrue(core.getInput('disable_search'));
|
const disableSearch = isTrue(core.getInput('disable_search'));
|
||||||
const dryRun = isTrue(core.getInput('dry_run'));
|
const dryRun = isTrue(core.getInput('dry_run'));
|
||||||
const envVars = core.getInput('env_vars');
|
const envVars = core.getInput('env_vars');
|
||||||
@@ -32383,6 +32388,7 @@ const buildUploadExec = () => {
|
|||||||
const file = core.getInput('file');
|
const file = core.getInput('file');
|
||||||
const files = core.getInput('files');
|
const files = core.getInput('files');
|
||||||
const flags = core.getInput('flags');
|
const flags = core.getInput('flags');
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const handleNoReportsFound = isTrue(core.getInput('handle_no_reports_found'));
|
const handleNoReportsFound = isTrue(core.getInput('handle_no_reports_found'));
|
||||||
const jobCode = core.getInput('job_code');
|
const jobCode = core.getInput('job_code');
|
||||||
const name = core.getInput('name');
|
const name = core.getInput('name');
|
||||||
@@ -32455,6 +32461,7 @@ const buildUploadExec = () => {
|
|||||||
uploadExecArgs.push('-F', `${f}`);
|
uploadExecArgs.push('-F', `${f}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
uploadExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
if (handleNoReportsFound) {
|
if (handleNoReportsFound) {
|
||||||
uploadExecArgs.push('--handle-no-reports-found');
|
uploadExecArgs.push('--handle-no-reports-found');
|
||||||
}
|
}
|
||||||
@@ -32518,6 +32525,7 @@ const buildUploadExec = () => {
|
|||||||
return {
|
return {
|
||||||
uploadExecArgs,
|
uploadExecArgs,
|
||||||
uploadOptions,
|
uploadOptions,
|
||||||
|
disableSafeDirectory,
|
||||||
failCi,
|
failCi,
|
||||||
os,
|
os,
|
||||||
uploaderVersion,
|
uploaderVersion,
|
||||||
@@ -32527,6 +32535,16 @@ const buildUploadExec = () => {
|
|||||||
|
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./src/helpers.ts
|
;// CONCATENATED MODULE: ./src/helpers.ts
|
||||||
|
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const PLATFORMS = [
|
const PLATFORMS = [
|
||||||
'linux',
|
'linux',
|
||||||
@@ -32578,6 +32596,18 @@ const getCommand = (filename, generalArgs, command) => {
|
|||||||
core.info(`==> Running command '${fullCommand.join(' ')}'`);
|
core.info(`==> Running command '${fullCommand.join(' ')}'`);
|
||||||
return fullCommand;
|
return fullCommand;
|
||||||
};
|
};
|
||||||
|
const setSafeDirectory = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||||
|
const command = ([
|
||||||
|
'git',
|
||||||
|
'config',
|
||||||
|
'--global',
|
||||||
|
'--add',
|
||||||
|
'safe.directory',
|
||||||
|
`${process.env['GITHUB_WORKSPACE']}`,
|
||||||
|
].join(' '));
|
||||||
|
core.info(`==> Running ${command}`);
|
||||||
|
yield exec.exec(command);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// EXTERNAL MODULE: external "crypto"
|
// EXTERNAL MODULE: external "crypto"
|
||||||
@@ -32587,7 +32617,7 @@ var gpg = __nccwpck_require__(40);
|
|||||||
// EXTERNAL MODULE: ./node_modules/undici/index.js
|
// EXTERNAL MODULE: ./node_modules/undici/index.js
|
||||||
var undici = __nccwpck_require__(1773);
|
var undici = __nccwpck_require__(1773);
|
||||||
;// CONCATENATED MODULE: ./src/validate.ts
|
;// CONCATENATED MODULE: ./src/validate.ts
|
||||||
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
var validate_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
@@ -32603,7 +32633,7 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const verify = (filename, platform, version, verbose, failCi) => __awaiter(void 0, void 0, void 0, function* () {
|
const verify = (filename, platform, version, verbose, failCi) => validate_awaiter(void 0, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const uploaderName = getUploaderName(platform);
|
const uploaderName = getUploaderName(platform);
|
||||||
// Get SHASUM and SHASUM signature files
|
// Get SHASUM and SHASUM signature files
|
||||||
@@ -32620,8 +32650,8 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
|
|||||||
console.log(`Received SHA256SUM signature ${shaSig}`);
|
console.log(`Received SHA256SUM signature ${shaSig}`);
|
||||||
}
|
}
|
||||||
yield external_fs_.writeFileSync(external_path_.join(__dirname, `${uploaderName}.SHA256SUM.sig`), shaSig);
|
yield external_fs_.writeFileSync(external_path_.join(__dirname, `${uploaderName}.SHA256SUM.sig`), shaSig);
|
||||||
const validateSha = () => __awaiter(void 0, void 0, void 0, function* () {
|
const validateSha = () => validate_awaiter(void 0, void 0, void 0, function* () {
|
||||||
const calculateHash = (filename) => __awaiter(void 0, void 0, void 0, function* () {
|
const calculateHash = (filename) => validate_awaiter(void 0, void 0, void 0, function* () {
|
||||||
const stream = external_fs_.createReadStream(filename);
|
const stream = external_fs_.createReadStream(filename);
|
||||||
const uploaderSha = external_crypto_.createHash(`sha256`);
|
const uploaderSha = external_crypto_.createHash(`sha256`);
|
||||||
stream.pipe(uploaderSha);
|
stream.pipe(uploaderSha);
|
||||||
@@ -32646,7 +32676,7 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
|
|||||||
'--verify',
|
'--verify',
|
||||||
external_path_.join(__dirname, `${uploaderName}.SHA256SUM.sig`),
|
external_path_.join(__dirname, `${uploaderName}.SHA256SUM.sig`),
|
||||||
external_path_.join(__dirname, `${uploaderName}.SHA256SUM`),
|
external_path_.join(__dirname, `${uploaderName}.SHA256SUM`),
|
||||||
], (err, verifyResult) => __awaiter(void 0, void 0, void 0, function* () {
|
], (err, verifyResult) => validate_awaiter(void 0, void 0, void 0, function* () {
|
||||||
if (err) {
|
if (err) {
|
||||||
setFailure('Codecov: Error importing pgp key', failCi);
|
setFailure('Codecov: Error importing pgp key', failCi);
|
||||||
}
|
}
|
||||||
@@ -32661,7 +32691,7 @@ const verify = (filename, platform, version, verbose, failCi) => __awaiter(void
|
|||||||
'--no-default-keyring',
|
'--no-default-keyring',
|
||||||
'--import',
|
'--import',
|
||||||
__nccwpck_require__.ab + "pgp_keys.asc",
|
__nccwpck_require__.ab + "pgp_keys.asc",
|
||||||
], (err, importResult) => __awaiter(void 0, void 0, void 0, function* () {
|
], (err, importResult) => validate_awaiter(void 0, void 0, void 0, function* () {
|
||||||
if (err) {
|
if (err) {
|
||||||
setFailure('Codecov: Error importing pgp key', failCi);
|
setFailure('Codecov: Error importing pgp key', failCi);
|
||||||
}
|
}
|
||||||
@@ -32726,7 +32756,7 @@ let failCi;
|
|||||||
try {
|
try {
|
||||||
const { commitExecArgs, commitOptions, commitCommand } = buildCommitExec();
|
const { commitExecArgs, commitOptions, commitCommand } = buildCommitExec();
|
||||||
const { reportExecArgs, reportOptions, reportCommand } = buildReportExec();
|
const { reportExecArgs, reportOptions, reportCommand } = buildReportExec();
|
||||||
const { uploadExecArgs, uploadOptions, failCi, os, uploaderVersion, uploadCommand, } = buildUploadExec();
|
const { uploadExecArgs, uploadOptions, disableSafeDirectory, failCi, os, uploaderVersion, uploadCommand, } = buildUploadExec();
|
||||||
const { args, verbose } = buildGeneralExec();
|
const { args, verbose } = buildGeneralExec();
|
||||||
const platform = getPlatform(os);
|
const platform = getPlatform(os);
|
||||||
const filename = external_path_.join(__dirname, getUploaderName(platform));
|
const filename = external_path_.join(__dirname, getUploaderName(platform));
|
||||||
@@ -32742,6 +32772,9 @@ try {
|
|||||||
yield validate(filename, platform, uploaderVersion, verbose, failCi);
|
yield validate(filename, platform, uploaderVersion, verbose, failCi);
|
||||||
yield version(platform, uploaderVersion);
|
yield version(platform, uploaderVersion);
|
||||||
yield external_fs_.chmodSync(filename, '777');
|
yield external_fs_.chmodSync(filename, '777');
|
||||||
|
if (!disableSafeDirectory) {
|
||||||
|
yield setSafeDirectory();
|
||||||
|
}
|
||||||
const unlink = () => {
|
const unlink = () => {
|
||||||
external_fs_.unlink(filename, (err) => {
|
external_fs_.unlink(filename, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
@@ -32752,7 +32785,7 @@ try {
|
|||||||
const doUpload = () => src_awaiter(void 0, void 0, void 0, function* () {
|
const doUpload = () => src_awaiter(void 0, void 0, void 0, function* () {
|
||||||
yield exec.exec(getCommand(filename, args, uploadCommand).join(' '), uploadExecArgs, uploadOptions)
|
yield exec.exec(getCommand(filename, args, uploadCommand).join(' '), uploadExecArgs, uploadOptions)
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
setFailure(`Codecov:
|
setFailure(`Codecov:
|
||||||
Failed to properly upload report: ${err.message}`, failCi);
|
Failed to properly upload report: ${err.message}`, failCi);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -32763,7 +32796,7 @@ try {
|
|||||||
yield doUpload();
|
yield doUpload();
|
||||||
}
|
}
|
||||||
})).catch((err) => {
|
})).catch((err) => {
|
||||||
setFailure(`Codecov:
|
setFailure(`Codecov:
|
||||||
Failed to properly create report: ${err.message}`, failCi);
|
Failed to properly create report: ${err.message}`, failCi);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -38,7 +38,10 @@ test('general args', () => {
|
|||||||
|
|
||||||
|
|
||||||
test('upload args using context', () => {
|
test('upload args using context', () => {
|
||||||
const expectedArgs = [];
|
const expectedArgs = [
|
||||||
|
'--git-service',
|
||||||
|
'github',
|
||||||
|
];
|
||||||
const {uploadExecArgs, uploadCommand} = buildUploadExec();
|
const {uploadExecArgs, uploadCommand} = buildUploadExec();
|
||||||
if (context.eventName == 'pull_request') {
|
if (context.eventName == 'pull_request') {
|
||||||
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
|
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
|
||||||
@@ -65,6 +68,7 @@ test('upload args', () => {
|
|||||||
'file': 'coverage.xml',
|
'file': 'coverage.xml',
|
||||||
'files': 'dir1/coverage.xml,dir2/coverage.xml',
|
'files': 'dir1/coverage.xml,dir2/coverage.xml',
|
||||||
'flags': 'test,test2',
|
'flags': 'test,test2',
|
||||||
|
'git_service': 'github_enterprise',
|
||||||
'handle_no_reports_found': 'true',
|
'handle_no_reports_found': 'true',
|
||||||
'job_code': '32',
|
'job_code': '32',
|
||||||
'name': 'codecov',
|
'name': 'codecov',
|
||||||
@@ -110,6 +114,8 @@ test('upload args', () => {
|
|||||||
'test',
|
'test',
|
||||||
'-F',
|
'-F',
|
||||||
'test2',
|
'test2',
|
||||||
|
'--git-service',
|
||||||
|
'github_enterprise',
|
||||||
'--handle-no-reports-found',
|
'--handle-no-reports-found',
|
||||||
'--job-code',
|
'--job-code',
|
||||||
'32',
|
'32',
|
||||||
@@ -152,6 +158,7 @@ test('upload args', () => {
|
|||||||
|
|
||||||
test('report args', () => {
|
test('report args', () => {
|
||||||
const envs = {
|
const envs = {
|
||||||
|
git_service: 'github_enterprise',
|
||||||
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
|
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
|
||||||
override_pr: 'fakePR',
|
override_pr: 'fakePR',
|
||||||
slug: 'fakeOwner/fakeRepo',
|
slug: 'fakeOwner/fakeRepo',
|
||||||
@@ -165,6 +172,8 @@ test('report args', () => {
|
|||||||
const {reportExecArgs, reportCommand} = buildReportExec();
|
const {reportExecArgs, reportCommand} = buildReportExec();
|
||||||
|
|
||||||
const expectedArgs = [
|
const expectedArgs = [
|
||||||
|
'--git-service',
|
||||||
|
'github_enterprise',
|
||||||
'-C',
|
'-C',
|
||||||
'9caabca5474b49de74ef5667deabaf74cdacc244',
|
'9caabca5474b49de74ef5667deabaf74cdacc244',
|
||||||
'-P',
|
'-P',
|
||||||
@@ -189,7 +198,10 @@ test('report args using context', () => {
|
|||||||
for (const env of Object.keys(envs)) {
|
for (const env of Object.keys(envs)) {
|
||||||
process.env['INPUT_' + env.toUpperCase()] = envs[env];
|
process.env['INPUT_' + env.toUpperCase()] = envs[env];
|
||||||
}
|
}
|
||||||
const expectedArgs : string[] = [];
|
const expectedArgs : string[] = [
|
||||||
|
'--git-service',
|
||||||
|
'github',
|
||||||
|
];
|
||||||
if (context.eventName == 'pull_request') {
|
if (context.eventName == 'pull_request') {
|
||||||
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
|
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
|
||||||
}
|
}
|
||||||
@@ -206,6 +218,7 @@ test('report args using context', () => {
|
|||||||
|
|
||||||
test('commit args', () => {
|
test('commit args', () => {
|
||||||
const envs = {
|
const envs = {
|
||||||
|
git_service: 'github_enterprise',
|
||||||
commit_parent: '83231650328f11695dfb754ca0f540516f188d27',
|
commit_parent: '83231650328f11695dfb754ca0f540516f188d27',
|
||||||
override_branch: 'thomasrockhu/test',
|
override_branch: 'thomasrockhu/test',
|
||||||
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
|
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
|
||||||
@@ -222,6 +235,8 @@ test('commit args', () => {
|
|||||||
const expectedArgs = [
|
const expectedArgs = [
|
||||||
'--parent-sha',
|
'--parent-sha',
|
||||||
'83231650328f11695dfb754ca0f540516f188d27',
|
'83231650328f11695dfb754ca0f540516f188d27',
|
||||||
|
'--git-service',
|
||||||
|
'github_enterprise',
|
||||||
'-B',
|
'-B',
|
||||||
'thomasrockhu/test',
|
'thomasrockhu/test',
|
||||||
'-C',
|
'-C',
|
||||||
@@ -241,7 +256,10 @@ test('commit args', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('commit args using context', () => {
|
test('commit args using context', () => {
|
||||||
const expectedArgs :string[] = [];
|
const expectedArgs :string[] = [
|
||||||
|
'--git-service',
|
||||||
|
'github',
|
||||||
|
];
|
||||||
|
|
||||||
const {commitExecArgs, commitCommand} = buildCommitExec();
|
const {commitExecArgs, commitCommand} = buildCommitExec();
|
||||||
if (context.eventName == 'pull_request') {
|
if (context.eventName == 'pull_request') {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const isTrue = (variable) => {
|
|||||||
|
|
||||||
const buildCommitExec = () => {
|
const buildCommitExec = () => {
|
||||||
const commitParent = core.getInput('commit_parent');
|
const commitParent = core.getInput('commit_parent');
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const overrideBranch = core.getInput('override_branch');
|
const overrideBranch = core.getInput('override_branch');
|
||||||
const overrideCommit = core.getInput('override_commit');
|
const overrideCommit = core.getInput('override_commit');
|
||||||
const overridePr = core.getInput('override_pr');
|
const overridePr = core.getInput('override_pr');
|
||||||
@@ -48,6 +49,7 @@ const buildCommitExec = () => {
|
|||||||
if (commitParent) {
|
if (commitParent) {
|
||||||
commitExecArgs.push('--parent-sha', `${commitParent}`);
|
commitExecArgs.push('--parent-sha', `${commitParent}`);
|
||||||
}
|
}
|
||||||
|
commitExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
|
|
||||||
if (overrideBranch) {
|
if (overrideBranch) {
|
||||||
commitExecArgs.push('-B', `${overrideBranch}`);
|
commitExecArgs.push('-B', `${overrideBranch}`);
|
||||||
@@ -100,6 +102,7 @@ const buildGeneralExec = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const buildReportExec = () => {
|
const buildReportExec = () => {
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const overrideCommit = core.getInput('override_commit');
|
const overrideCommit = core.getInput('override_commit');
|
||||||
const overridePr = core.getInput('override_pr');
|
const overridePr = core.getInput('override_pr');
|
||||||
const slug = core.getInput('slug');
|
const slug = core.getInput('slug');
|
||||||
@@ -125,6 +128,8 @@ const buildReportExec = () => {
|
|||||||
if (token) {
|
if (token) {
|
||||||
reportOptions.env.CODECOV_TOKEN = token;
|
reportOptions.env.CODECOV_TOKEN = token;
|
||||||
}
|
}
|
||||||
|
reportExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
|
|
||||||
if (overrideCommit) {
|
if (overrideCommit) {
|
||||||
reportExecArgs.push('-C', `${overrideCommit}`);
|
reportExecArgs.push('-C', `${overrideCommit}`);
|
||||||
} else if (
|
} else if (
|
||||||
@@ -155,6 +160,7 @@ const buildReportExec = () => {
|
|||||||
|
|
||||||
const buildUploadExec = () => {
|
const buildUploadExec = () => {
|
||||||
const disableFileFixes = isTrue(core.getInput('disable_file_fixes'));
|
const disableFileFixes = isTrue(core.getInput('disable_file_fixes'));
|
||||||
|
const disableSafeDirectory = isTrue(core.getInput('diable_safe_directory'));
|
||||||
const disableSearch = isTrue(core.getInput('disable_search'));
|
const disableSearch = isTrue(core.getInput('disable_search'));
|
||||||
const dryRun = isTrue(core.getInput('dry_run'));
|
const dryRun = isTrue(core.getInput('dry_run'));
|
||||||
const envVars = core.getInput('env_vars');
|
const envVars = core.getInput('env_vars');
|
||||||
@@ -163,6 +169,7 @@ const buildUploadExec = () => {
|
|||||||
const file = core.getInput('file');
|
const file = core.getInput('file');
|
||||||
const files = core.getInput('files');
|
const files = core.getInput('files');
|
||||||
const flags = core.getInput('flags');
|
const flags = core.getInput('flags');
|
||||||
|
const gitService = core.getInput('git_service');
|
||||||
const handleNoReportsFound = isTrue(core.getInput('handle_no_reports_found'));
|
const handleNoReportsFound = isTrue(core.getInput('handle_no_reports_found'));
|
||||||
const jobCode = core.getInput('job_code');
|
const jobCode = core.getInput('job_code');
|
||||||
const name = core.getInput('name');
|
const name = core.getInput('name');
|
||||||
@@ -239,6 +246,7 @@ const buildUploadExec = () => {
|
|||||||
uploadExecArgs.push('-F', `${f}`);
|
uploadExecArgs.push('-F', `${f}`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
uploadExecArgs.push('--git-service', `${gitService ? gitService : 'github'}`);
|
||||||
if (handleNoReportsFound) {
|
if (handleNoReportsFound) {
|
||||||
uploadExecArgs.push('--handle-no-reports-found');
|
uploadExecArgs.push('--handle-no-reports-found');
|
||||||
}
|
}
|
||||||
@@ -305,6 +313,7 @@ const buildUploadExec = () => {
|
|||||||
return {
|
return {
|
||||||
uploadExecArgs,
|
uploadExecArgs,
|
||||||
uploadOptions,
|
uploadOptions,
|
||||||
|
disableSafeDirectory,
|
||||||
failCi,
|
failCi,
|
||||||
os,
|
os,
|
||||||
uploaderVersion,
|
uploaderVersion,
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
|
import * as exec from '@actions/exec';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
PLATFORMS,
|
||||||
getBaseUrl,
|
getBaseUrl,
|
||||||
|
getCommand,
|
||||||
getPlatform,
|
getPlatform,
|
||||||
isValidPlatform,
|
isValidPlatform,
|
||||||
isWindows,
|
isWindows,
|
||||||
PLATFORMS,
|
setSafeDirectory,
|
||||||
getCommand,
|
|
||||||
} from './helpers';
|
} from './helpers';
|
||||||
|
|
||||||
let OLDOS = process.env.RUNNER_OS;
|
let OLDOS = process.env.RUNNER_OS;
|
||||||
@@ -78,3 +81,16 @@ test('getCommand', () => {
|
|||||||
expect(getCommand('path', ['-v', '-x'], 'do-upload'))
|
expect(getCommand('path', ['-v', '-x'], 'do-upload'))
|
||||||
.toEqual(['path', '-v', '-x', 'do-upload']);
|
.toEqual(['path', '-v', '-x', 'do-upload']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('setSafeDirectory', async () => {
|
||||||
|
process.env.GITHUB_WORKSPACE = 'testOrg/testRepo';
|
||||||
|
await setSafeDirectory();
|
||||||
|
const testSafeDirectory = ([
|
||||||
|
'git',
|
||||||
|
'config',
|
||||||
|
'--get',
|
||||||
|
'safe.directory',
|
||||||
|
]).join(' ');
|
||||||
|
const safeDirectory = await exec.getExecOutput(testSafeDirectory);
|
||||||
|
expect(safeDirectory.stdout).toBe('testOrg/testRepo\n');
|
||||||
|
});
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
|
import * as exec from '@actions/exec';
|
||||||
|
|
||||||
const PLATFORMS = [
|
const PLATFORMS = [
|
||||||
'linux',
|
'linux',
|
||||||
@@ -64,6 +65,19 @@ const getCommand = (
|
|||||||
return fullCommand;
|
return fullCommand;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const setSafeDirectory = async () => {
|
||||||
|
const command = ([
|
||||||
|
'git',
|
||||||
|
'config',
|
||||||
|
'--global',
|
||||||
|
'--add',
|
||||||
|
'safe.directory',
|
||||||
|
`${process.env['GITHUB_WORKSPACE']}`,
|
||||||
|
].join(' '));
|
||||||
|
core.info(`==> Running ${command}`);
|
||||||
|
await exec.exec(command);
|
||||||
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
PLATFORMS,
|
PLATFORMS,
|
||||||
getBaseUrl,
|
getBaseUrl,
|
||||||
@@ -72,5 +86,6 @@ export {
|
|||||||
isValidPlatform,
|
isValidPlatform,
|
||||||
isWindows,
|
isWindows,
|
||||||
setFailure,
|
setFailure,
|
||||||
|
setSafeDirectory,
|
||||||
getCommand,
|
getCommand,
|
||||||
};
|
};
|
||||||
|
|||||||
11
src/index.ts
11
src/index.ts
@@ -12,10 +12,11 @@ import {
|
|||||||
} from './buildExec';
|
} from './buildExec';
|
||||||
import {
|
import {
|
||||||
getBaseUrl,
|
getBaseUrl,
|
||||||
|
getCommand,
|
||||||
getPlatform,
|
getPlatform,
|
||||||
getUploaderName,
|
getUploaderName,
|
||||||
setFailure,
|
setFailure,
|
||||||
getCommand,
|
setSafeDirectory,
|
||||||
} from './helpers';
|
} from './helpers';
|
||||||
|
|
||||||
import verify from './validate';
|
import verify from './validate';
|
||||||
@@ -29,6 +30,7 @@ try {
|
|||||||
const {
|
const {
|
||||||
uploadExecArgs,
|
uploadExecArgs,
|
||||||
uploadOptions,
|
uploadOptions,
|
||||||
|
disableSafeDirectory,
|
||||||
failCi,
|
failCi,
|
||||||
os,
|
os,
|
||||||
uploaderVersion,
|
uploaderVersion,
|
||||||
@@ -55,6 +57,9 @@ try {
|
|||||||
await verify(filename, platform, uploaderVersion, verbose, failCi);
|
await verify(filename, platform, uploaderVersion, verbose, failCi);
|
||||||
await versionInfo(platform, uploaderVersion);
|
await versionInfo(platform, uploaderVersion);
|
||||||
await fs.chmodSync(filename, '777');
|
await fs.chmodSync(filename, '777');
|
||||||
|
if (!disableSafeDirectory) {
|
||||||
|
await setSafeDirectory();
|
||||||
|
}
|
||||||
|
|
||||||
const unlink = () => {
|
const unlink = () => {
|
||||||
fs.unlink(filename, (err) => {
|
fs.unlink(filename, (err) => {
|
||||||
@@ -72,7 +77,7 @@ try {
|
|||||||
uploadOptions)
|
uploadOptions)
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
setFailure(
|
setFailure(
|
||||||
`Codecov:
|
`Codecov:
|
||||||
Failed to properly upload report: ${err.message}`,
|
Failed to properly upload report: ${err.message}`,
|
||||||
failCi,
|
failCi,
|
||||||
);
|
);
|
||||||
@@ -89,7 +94,7 @@ try {
|
|||||||
}
|
}
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
setFailure(
|
setFailure(
|
||||||
`Codecov:
|
`Codecov:
|
||||||
Failed to properly create report: ${err.message}`,
|
Failed to properly create report: ${err.message}`,
|
||||||
failCi,
|
failCi,
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user