From c878e3171253761a653711eceb2c28e8f0ebab1b Mon Sep 17 00:00:00 2001 From: Technote Date: Thu, 2 Jun 2022 03:44:02 +0900 Subject: [PATCH] feat: not override status with same name (#99) BREAKING CHANGE: changed same job name behavior --- src/fixtures/actions.list.jobs2.json | 2 +- src/process.test.ts | 31 +++++++++++++++------------- src/process.ts | 11 ++++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/fixtures/actions.list.jobs2.json b/src/fixtures/actions.list.jobs2.json index a2bfeb1f..1601617c 100644 --- a/src/fixtures/actions.list.jobs2.json +++ b/src/fixtures/actions.list.jobs2.json @@ -10,7 +10,7 @@ "url": "https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496", "html_url": "https://github.com/octo-org/octo-repo/runs/399444496", "status": "completed", - "conclusion": "failure", + "conclusion": null, "started_at": "2020-01-20T17:42:40Z", "completed_at": "2020-01-20T17:44:39Z", "name": "build", diff --git a/src/process.test.ts b/src/process.test.ts index 97de3878..5d639643 100644 --- a/src/process.test.ts +++ b/src/process.test.ts @@ -59,23 +59,26 @@ describe('getJobs', () => { describe('getJobConclusions', () => { it('should get conclusions', () => { expect(getJobConclusions([ - { name: 'test1', conclusion: 'cancelled' }, - { name: 'test2', conclusion: 'neutral' }, - { name: 'test3', conclusion: 'failure' }, - { name: 'test4', conclusion: 'success' }, - { name: 'test5', conclusion: 'failure' }, - { name: 'test6', conclusion: 'success' }, - { name: 'test7', conclusion: 'cancelled' }, - { name: 'test8', conclusion: 'skipped' }, - { name: 'test9', conclusion: 'test1' }, - { name: 'test9', conclusion: 'test2' }, - { name: 'test9', conclusion: 'test3' }, + { conclusion: 'cancelled' }, + { conclusion: null }, + { conclusion: 'neutral' }, + { conclusion: 'failure' }, + { conclusion: 'success' }, + { conclusion: 'failure' }, + { conclusion: 'success' }, + { conclusion: 'cancelled' }, + { conclusion: 'skipped' }, + { conclusion: 'test1' }, + { conclusion: 'test2' }, + { conclusion: 'test3' }, ])).toEqual([ 'cancelled', 'neutral', 'failure', 'success', 'skipped', + 'test1', + 'test2', 'test3', ]); }); @@ -121,7 +124,7 @@ describe('execute', () => { stdoutContains(mockStdout, [ '::group::Jobs:', '::group::Conclusions:', - getLogStdout(['success']), + getLogStdout(['skipped', 'success']), '::group::Conclusion:', '"success"', '::set-output name=conclusion::success', @@ -144,7 +147,7 @@ describe('execute', () => { stdoutContains(mockStdout, [ '::group::Jobs:', '::group::Conclusions:', - getLogStdout(['success', 'cancelled', 'skipped']), + getLogStdout(['cancelled', 'success', 'skipped']), '::group::Conclusion:', '"cancelled"', '::set-output name=conclusion::cancelled', @@ -213,7 +216,7 @@ describe('execute', () => { stdoutContains(mockStdout, [ '::group::Jobs:', '::group::Conclusions:', - getLogStdout(['success']), + getLogStdout(['skipped', 'success']), '::group::Conclusion:', '"success"', '::set-output name=conclusion::success', diff --git a/src/process.ts b/src/process.ts index 0a585601..a4e605e2 100644 --- a/src/process.ts +++ b/src/process.ts @@ -18,13 +18,10 @@ export const getJobs = async(octokit: Octokit, context: Context): Promise): Array => Utils.uniqueArray( - Object.values( - jobs - .filter(job => null !== job.conclusion) - .map(job => ({ name: job.name, conclusion: String(job.conclusion) })) - .reduce((acc, job) => ({ ...acc, [job.name]: job.conclusion }), {}), - ), +export const getJobConclusions = (jobs: Array<{ conclusion: string | null }>): Array => Utils.uniqueArray( + jobs + .filter((job): job is { conclusion: string } => null !== job.conclusion) + .map(job => job.conclusion), ); // eslint-disable-next-line no-magic-numbers