diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2018-09-24 15:26:52 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2018-09-26 20:42:16 +0200 |
commit | 8556019d203785f75795b1973a0ed380235cd954 (patch) | |
tree | 61e9be21d53df97617115dcc28b2e623424836ac /scripts/environment.js | |
parent | 229909aa03b65464369af74fffaeb931b197ca12 (diff) | |
download | qtlocation-mapboxgl-8556019d203785f75795b1973a0ed380235cd954.tar.gz |
[build] post clang-format suggestions to PRs
Diffstat (limited to 'scripts/environment.js')
-rwxr-xr-x | scripts/environment.js | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/scripts/environment.js b/scripts/environment.js index cb533a74a8..785fc6221c 100755 --- a/scripts/environment.js +++ b/scripts/environment.js @@ -6,29 +6,42 @@ const github = require('@octokit/rest')(); const {execSync} = require('child_process'); -const pr = process.env['CIRCLE_PULL_REQUEST']; -const head = process.env['CIRCLE_SHA1'] || 'HEAD'; -if (pr) { - const number = +pr.match(/\/(\d+)\/?$/)[1]; - return github.pullRequests.get({ - owner: 'mapbox', - repo: 'mapbox-gl-native', - number - }).then(({data}) => { +let environment = module.exports = async function() { + const head = process.env['CIRCLE_SHA1'] || 'HEAD'; + + if (process.env['CIRCLE_TARGET_BRANCH'] && process.env['CIRCLE_MERGE_BASE']) { + return { + head, + base: process.env['CIRCLE_TARGET_BRANCH'], + mergeBase: process.env['CIRCLE_MERGE_BASE'] + }; + } + + const pr = process.env['CIRCLE_PULL_REQUEST']; + if (pr) { + const number = +pr.match(/\/(\d+)\/?$/)[1]; + const data = (await github.pullRequests.get({ owner: 'mapbox', repo: 'mapbox-gl-native', number })).data; const base = data.base.ref; const mergeBase = execSync(`git merge-base origin/${base} ${head}`).toString().trim(); - - console.log(`export CIRCLE_TARGET_BRANCH=${base}`); - console.log(`export CIRCLE_MERGE_BASE=${mergeBase}`); - }); -} else { - for (const sha of execSync(`git rev-list --max-count=10 ${head}`).toString().trim().split('\n')) { - const base = execSync(`git branch -r --contains ${sha} origin/master origin/release-*`).toString().split('\n')[0].trim().replace(/^origin\//, ''); - if (base.match(/^(master|release-[a-z]+)$/)) { - const mergeBase = execSync(`git merge-base origin/${base} ${head}`).toString().trim(); - console.log(`export CIRCLE_TARGET_BRANCH=${base}`); - console.log(`export CIRCLE_MERGE_BASE=${mergeBase}`); - break; + return { head, base, mergeBase }; + } else { + for (const sha of execSync(`git rev-list --max-count=10 ${head}`).toString().trim().split('\n')) { + const base = execSync(`git branch -r --contains ${sha} origin/master origin/release-*`).toString().split('\n')[0].trim().replace(/^origin\//, ''); + if (base.match(/^(master|release-[a-z]+)$/)) { + const mergeBase = execSync(`git merge-base origin/${base} ${head}`).toString().trim(); + return { head, base, mergeBase }; + } } + return { head, base: null, mergeBase: null }; } } + +async function main() { + const env = await environment(); + console.log(`export CIRCLE_TARGET_BRANCH=${env.base}`); + console.log(`export CIRCLE_MERGE_BASE=${env.mergeBase}`); +} + +if (require.main === module) { + main(); +} |