diff --git a/lib/services/codebuild.js b/lib/services/codebuild.js index 8126527a..30ef6443 100644 --- a/lib/services/codebuild.js +++ b/lib/services/codebuild.js @@ -26,7 +26,10 @@ module.exports = { return git.branch() } function detectPRNumber() { - if (process.env.CODEBUILD_WEBHOOK_HEAD_REF) { + if ( + process.env.CODEBUILD_WEBHOOK_HEAD_REF && + process.env.CODEBUILD_SOURCE_VERSION.startsWith('pr/') + ) { return process.env.CODEBUILD_SOURCE_VERSION.replace(/^pr\//, '') } return undefined diff --git a/test/services/codebuild.test.js b/test/services/codebuild.test.js index 5bf510c0..82518f46 100644 --- a/test/services/codebuild.test.js +++ b/test/services/codebuild.test.js @@ -55,7 +55,7 @@ describe('AWS CodeBuild Provider', function() { }) }) - it('Test build triggered via Github Webhook', function() { + it('Test PR build triggered via Github Webhook', function() { process.env.CODEBUILD_WEBHOOK_HEAD_REF = 'refs/heads/master' expect(codebuild.configuration()).toEqual({ service: 'codebuild', @@ -68,6 +68,21 @@ describe('AWS CodeBuild Provider', function() { }) }) + it('Test non-PR build triggered via Github Webhook', function() { + process.env.CODEBUILD_WEBHOOK_HEAD_REF = 'refs/heads/master' + process.env.CODEBUILD_SOURCE_VERSION = + '39ec2418eca4c539d765574a1c68f3bd77e8c549' + expect(codebuild.configuration()).toEqual({ + service: 'codebuild', + build: 'my-project:e016b9d9-f2c8-4749-8373-7ca673b6d969', + job: 'my-project:e016b9d9-f2c8-4749-8373-7ca673b6d969', + commit: '39ec2418eca4c539d765574a1c68f3bd77e8c549', + branch: 'master', + pr: undefined, + slug: 'my-org/my-project', + }) + }) + it('throws if slug cannot be detected', function() { process.env.CODEBUILD_RESOLVED_SOURCE_VERSION = '39ec2418eca4c539d765574a1c68f3bd77e8c549'