Skip to content

Commit

Permalink
build commit,report and upload args based on codecovcli (#943)
Browse files Browse the repository at this point in the history
* build commit,report and upload args based on codecovcli

* add tests

* Empty-Commit
  • Loading branch information
dana-yaish committed Aug 22, 2023
1 parent e1dd05c commit c17956f
Show file tree
Hide file tree
Showing 5 changed files with 719 additions and 61 deletions.
306 changes: 254 additions & 52 deletions dist/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

227 changes: 221 additions & 6 deletions src/buildExec.test.ts
@@ -1,9 +1,14 @@
import * as github from '@actions/github';

import buildExec from './buildExec';
import {
buildCommitExec,
buildExec,
buildGeneralExec,
buildReportExec,
buildUploadExec,
} from './buildExec';

/* eslint-disable @typescript-eslint/no-var-requires */
const {version} = require('../package.json');
import {version} from '../package.json';

const context = github.context;

Expand All @@ -19,6 +24,7 @@ test('no arguments', () => {
if (context.eventName == 'pull_request') {
args.push('-C', `${context.payload.pull_request.head.sha}`);
}

expect(execArgs).toEqual(args);
expect(failCi).toBeFalsy();
});
Expand Down Expand Up @@ -151,7 +157,7 @@ describe('trim arguments after splitting them', () => {
];

test('files', () => {
const envs = {'files': './client-coverage.txt, ./lcov.info'};
const envs = {files: './client-coverage.txt, ./lcov.info'};

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
Expand All @@ -175,7 +181,7 @@ describe('trim arguments after splitting them', () => {
});

test('flags', () => {
const envs = {'flags': 'ios, mobile'};
const envs = {flags: 'ios, mobile'};

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
Expand All @@ -199,7 +205,7 @@ describe('trim arguments after splitting them', () => {
});

test('functionalities', () => {
const envs = {'functionalities': 'network, gcov'};
const envs = {functionalities: 'network, gcov'};

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
Expand All @@ -222,3 +228,212 @@ describe('trim arguments after splitting them', () => {
}
});
});

test('general args', () => {
const envs = {
url: 'https://codecov.enterprise.com',
verbose: 't',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}

const args = buildGeneralExec();

expect(args).toEqual(
expect.arrayContaining([
'--enterprise-url',
'https://codecov.enterprise.com',
'-v',
]));

for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});


test('upload args using context', () => {
const expectedArgs = [
'-n',
'',
];
const {uploadExecArgs, uploadCommand} = buildUploadExec();
if (context.eventName == 'pull_request') {
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
}
if (context.eventName == 'pull_request_target') {
expectedArgs.push('-P', `${context.payload.number}`);
}

expect(uploadExecArgs).toEqual(expectedArgs);
expect(uploadCommand).toEqual('do-upload');
});

test('upload args', () => {
const envs = {
'directory': 'coverage/',
'dry_run': 'true',
'env_vars': 'OS,PYTHON',
'fail_ci_if_error': 'true',
'file': 'coverage.xml',
'files': 'dir1/coverage.xml,dir2/coverage.xml',
'flags': 'test,test2',
'name': 'codecov',
'override_branch': 'thomasrockhu/test',
'override_build': '1',
'override_commit': '9caabca5474b49de74ef5667deabaf74cdacc244',
'override_pr': '2',
'root_dir': 'root/',
'slug': 'fakeOwner/fakeRepo',
'token': 'd3859757-ab80-4664-924d-aef22fa7557b',
'working-directory': 'src',
'plugin': 'xcode',
'exclude': 'src',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}

const {uploadExecArgs, uploadCommand} = buildUploadExec();
const expectedArgs = [
'-n',
'codecov',
'-d',
'-e',
'OS,PYTHON',
'-Z',
'-f',
'coverage.xml',
'-f',
'dir1/coverage.xml',
'-f',
'dir2/coverage.xml',
'-F',
'test',
'-F',
'test2',
'-B',
'thomasrockhu/test',
'-b',
'1',
'-C',
'9caabca5474b49de74ef5667deabaf74cdacc244',
'-P',
'2',
'--network-root-folder',
'root/',
'-s',
'coverage/',
'-r',
'fakeOwner/fakeRepo',
'--plugin',
'xcode',
'--exclude',
'src',
];

expect(uploadExecArgs).toEqual(expectedArgs);
expect(uploadCommand).toEqual('do-upload');
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});


test('report args', () => {
const envs = {
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
slug: 'fakeOwner/fakeRepo',
token: 'd3859757-ab80-4664-924d-aef22fa7557b',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}

const {reportExecArgs, reportCommand} = buildReportExec();

expect(reportExecArgs).toEqual(
expect.arrayContaining([
'-C',
'9caabca5474b49de74ef5667deabaf74cdacc244',
'--slug',
'fakeOwner/fakeRepo',
]));
expect(reportCommand).toEqual('create-report');
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});


test('report args using context', () => {
const envs = {
token: 'd3859757-ab80-4664-924d-aef22fa7557b',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}
const expectedArgs : string[] = [];
if (context.eventName == 'pull_request') {
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
}

const {reportExecArgs, reportCommand} = buildReportExec();

expect(reportExecArgs).toEqual(expectedArgs);
expect(reportCommand).toEqual('create-report');
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});


test('commit args', () => {
const envs = {
override_commit: '9caabca5474b49de74ef5667deabaf74cdacc244',
slug: 'fakeOwner/fakeRepo',
token: 'd3859757-ab80-4664-924d-aef22fa7557b',
override_branch: 'thomasrockhu/test',
override_pr: '2',
commit_parent: '83231650328f11695dfb754ca0f540516f188d27',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}

const {commitExecArgs, commitCommand} = buildCommitExec();

expect(commitExecArgs).toEqual(
expect.arrayContaining([
'-C',
'9caabca5474b49de74ef5667deabaf74cdacc244',
'--slug',
'fakeOwner/fakeRepo',
'-B',
'thomasrockhu/test',
'--pr',
'2',
'--parent-sha',
'83231650328f11695dfb754ca0f540516f188d27',
]));
expect(commitCommand).toEqual('create-commit');
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});

test('commit args using context', () => {
const expectedArgs :string[] = [];

const {commitExecArgs, commitCommand} = buildCommitExec();
if (context.eventName == 'pull_request') {
expectedArgs.push('-C', `${context.payload.pull_request.head.sha}`);
}
if (context.eventName == 'pull_request_target') {
expectedArgs.push('-P', `${context.payload.number}`);
}

expect(commitExecArgs).toEqual(expectedArgs);
expect(commitCommand).toEqual('create-commit');
});

0 comments on commit c17956f

Please sign in to comment.