From dec13d8b948a999c37d512123d1eb0e2d0629725 Mon Sep 17 00:00:00 2001 From: Juraj Misur Date: Fri, 22 May 2020 12:17:14 +0200 Subject: [PATCH] fallback to sha if not on pr (#4) --- action.js | 7 ++++--- action.test.fixtures.js | 14 +++++++++++++- action.test.js | 26 +++++++++++++++++++++++++- dist/index.js | 7 ++++--- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/action.js b/action.js index 8766722e..22483848 100644 --- a/action.js +++ b/action.js @@ -15,12 +15,13 @@ const action = async () => { : 'No test results found!'; core.info(`Result: ${title}`); - const prLink = github.context.payload.pull_request.html_url; + const pullRequest = github.context.payload.pull_request; + const link = pullRequest && pullRequest.html_url || github.context.ref; const conclusion = foundResults && annotations.length === 0 ? 'success' : 'failure'; const status = 'completed'; - const head_sha = github.context.payload.pull_request.head.sha; + const head_sha = pullRequest && pullRequest.head.sha || github.context.sha; core.info( - `Posting status '${status}' with conclusion '${conclusion}' to ${prLink} (sha: ${head_sha})` + `Posting status '${status}' with conclusion '${conclusion}' to ${link} (sha: ${head_sha})` ); const createCheckRequest = { diff --git a/action.test.fixtures.js b/action.test.fixtures.js index 143c6196..17938091 100644 --- a/action.test.fixtures.js +++ b/action.test.fixtures.js @@ -166,6 +166,18 @@ const finishedSuccess = { } }; +const masterSuccess = { + name: 'Test Report', + head_sha: 'masterSha123', + status: 'completed', + conclusion: 'success', + output: { + title: '1 tests run, 0 skipped, 0 failed.', + summary: '', + annotations: [] + } +}; + const nothingFound = { name: 'Test Report', head_sha: 'sha123', @@ -178,4 +190,4 @@ const nothingFound = { } }; -module.exports = { finishedWithFailures, finishedSuccess, nothingFound }; +module.exports = { finishedWithFailures, finishedSuccess, nothingFound, masterSuccess }; diff --git a/action.test.js b/action.test.js index a402b0cc..4295fbfd 100644 --- a/action.test.js +++ b/action.test.js @@ -2,7 +2,12 @@ const core = require('@actions/core'); const github = require('@actions/github'); const nock = require('nock'); const action = require('./action'); -const { finishedWithFailures, finishedSuccess, nothingFound } = require('./action.test.fixtures'); +const { + finishedWithFailures, + finishedSuccess, + nothingFound, + masterSuccess +} = require('./action.test.fixtures'); jest.setTimeout(20000); @@ -89,4 +94,23 @@ describe('action should work', () => { expect(request).toStrictEqual(nothingFound); }); + + it('should send reports to sha if no pr detected', async () => { + inputs.report_paths = '**/surefire-reports/TEST-*AllOkTest.xml'; + github.context.payload.pull_request = undefined; + github.context.sha = 'masterSha123'; + github.context.ref = 'refs/heads/master'; + + let request = null; + const scope = nock('https://api.github.com') + .post('/repos/scacap/action-surefire-report/check-runs', body => { + request = body; + return body; + }) + .reply(200, {}); + await action(); + scope.done(); + + expect(request).toStrictEqual(masterSuccess); + }); }); diff --git a/dist/index.js b/dist/index.js index a9afa4ca..243c9527 100644 --- a/dist/index.js +++ b/dist/index.js @@ -29747,12 +29747,13 @@ const action = async () => { : 'No test results found!'; core.info(`Result: ${title}`); - const prLink = github.context.payload.pull_request.html_url; + const pullRequest = github.context.payload.pull_request; + const link = pullRequest && pullRequest.html_url || github.context.ref; const conclusion = foundResults && annotations.length === 0 ? 'success' : 'failure'; const status = 'completed'; - const head_sha = github.context.payload.pull_request.head.sha; + const head_sha = pullRequest && pullRequest.head.sha || github.context.sha; core.info( - `Posting status '${status}' with conclusion '${conclusion}' to ${prLink} (sha: ${head_sha})` + `Posting status '${status}' with conclusion '${conclusion}' to ${link} (sha: ${head_sha})` ); const createCheckRequest = {