Skip to content

Commit

Permalink
use cli instead of node uploader (#1068)
Browse files Browse the repository at this point in the history
* use cli instead of node uploader

* changes based on review

* logging out run command
  • Loading branch information
dana-yaish committed Sep 13, 2023
1 parent c9e0f0b commit c9e4b73
Show file tree
Hide file tree
Showing 8 changed files with 150 additions and 656 deletions.
10 changes: 8 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
flags: script,${{ matrix.os }}
name: codecov-script
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (demo)
uses: ./
with:
Expand All @@ -24,15 +25,17 @@ jobs:
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.1.0_8880
version: v0.2.0
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
run:
runs-on: ${{ matrix.os }}
strategy:
Expand All @@ -54,6 +57,7 @@ jobs:
flags: script,${{ matrix.os }}
name: codecov-script
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (demo)
uses: ./
with:
Expand All @@ -62,12 +66,14 @@ jobs:
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.1.0_8880
version: v0.2.0
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
256 changes: 50 additions & 206 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.

223 changes: 2 additions & 221 deletions src/buildExec.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,233 +2,14 @@ import * as github from '@actions/github';

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

import {version} from '../package.json';

const context = github.context;

test('no arguments', () => {
const {execArgs, failCi} = buildExec();

const args = [
'-n',
'',
'-Q',
`github-action-${version}`,
];
if (context.eventName == 'pull_request') {
args.push('-C', `${context.payload.pull_request.head.sha}`);
}

expect(execArgs).toEqual(args);
expect(failCi).toBeFalsy();
});

test('all arguments', () => {
const envs = {
'commit_parent': '83231650328f11695dfb754ca0f540516f188d27',
'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',
'functionalities': 'network',
'full_report': 'oldDir/oldReport.json',
'gcov': 'true',
'gcov_args': '-v',
'gcov_ignore': '*.fake',
'gcov_include': 'real_file',
'gcov_executable': 'gcov2',
'move_coverage_to_trash': 'true',
'name': 'codecov',
'network_filter': 'src/',
'network_prefix': 'build/',
'override_branch': 'thomasrockhu/test',
'override_build': '1',
'override_commit': '9caabca5474b49de74ef5667deabaf74cdacc244',
'override_pr': '2',
'override_tag': 'v1.2',
'root_dir': 'root/',
'swift': 'true',
'swift_project': 'MyApp',
'slug': 'fakeOwner/fakeRepo',
'token': 'd3859757-ab80-4664-924d-aef22fa7557b',
'upstream_proxy': 'https://codecov.example.com',
'url': 'https://codecov.enterprise.com',
'verbose': 't',
'xcode': 'true',
'xcode_archive_path': '/test.xcresult',
'xtra_args': '--some --other --args',
};

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

const {execArgs, failCi} = buildExec();
expect(execArgs).toEqual([
'-n',
'codecov',
'-Q',
`github-action-${version}`,
'-c',
'-N',
'83231650328f11695dfb754ca0f540516f188d27',
'-d',
'-e',
'OS,PYTHON',
'-X',
'network',
'-Z',
'-f',
'coverage.xml',
'-f',
'dir1/coverage.xml',
'-f',
'dir2/coverage.xml',
'--full',
'oldDir/oldReport.json',
'-F',
'test',
'-F',
'test2',
'-g',
'--ga',
'-v',
'--gi',
'*.fake',
'--gI',
'real_file',
'--gx',
'gcov2',
'-i',
'src/',
'-k',
'build/',
'-B',
'thomasrockhu/test',
'-b',
'1',
'-C',
'9caabca5474b49de74ef5667deabaf74cdacc244',
'-P',
'2',
'-T',
'v1.2',
'-R',
'root/',
'-s',
'coverage/',
'-r',
'fakeOwner/fakeRepo',
'--xs',
'--xsp',
'MyApp',
'-U',
'https://codecov.example.com',
'-u',
'https://codecov.enterprise.com',
'-v',
'--xc',
'--xp',
'/test.xcresult',
'--some --other --args',
]);
expect(failCi).toBeTruthy();

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

describe('trim arguments after splitting them', () => {
const baseExpectation = [
'-n',
expect.stringContaining(''),
'-Q',
expect.stringContaining('github-action'),
];

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

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}

const {execArgs} = buildExec();

expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-f',
'./client-coverage.txt',
'-f',
'./lcov.info',
]),
);

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

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

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}

const {execArgs} = buildExec();

expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-F',
'ios',
'-F',
'mobile',
]),
);

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

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

for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}

const {execArgs} = buildExec();

expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-X',
'network',
'-X',
'gcov',
]),
);

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

test('general args', () => {
const envs = {
url: 'https://codecov.enterprise.com',
Expand All @@ -238,15 +19,15 @@ test('general args', () => {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}

const args = buildGeneralExec();
const {args, verbose} = buildGeneralExec();

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

expect(verbose).toBeTruthy();
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
Expand Down
Loading

0 comments on commit c9e4b73

Please sign in to comment.