forked from desktop/desktop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-platforms.ts
91 lines (76 loc) · 2.29 KB
/
build-platforms.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
export function getSha() {
if (isCircleCI() && process.env.CIRCLE_SHA1 != null) {
return process.env.CIRCLE_SHA1
}
if (isAppveyor() && process.env.APPVEYOR_REPO_COMMIT != null) {
return process.env.APPVEYOR_REPO_COMMIT
}
if (isTravis() && process.env.TRAVIS_COMMIT != null) {
return process.env.TRAVIS_COMMIT
}
const branchCommitId = process.env.BUILD_SOURCEVERSION
// this check is for a CI build from a local branch
if (isAzurePipelines() && branchCommitId != null) {
return branchCommitId
}
const pullRequestCommitId = process.env.SYSTEM_PULLREQUEST_SOURCECOMMITID
if (isAzurePipelines() && pullRequestCommitId != null) {
return pullRequestCommitId
}
throw new Error(
`Unable to get the SHA for the current platform. Check the documentation for the expected environment variables.`
)
}
export function isRunningOnFork() {
if (isCircleCI() && process.env.CIRCLE_PR_USERNAME != null) {
return true
}
if (
isAppveyor() &&
process.env.APPVEYOR_PULL_REQUEST_NUMBER != null &&
process.env.APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME !== 'desktop/desktop'
) {
return true
}
if (
isTravis() &&
process.env.TRAVIS_PULL_REQUEST_SLUG != null &&
// empty string denotes a `push` build
process.env.TRAVIS_PULL_REQUEST_SLUG !== '' &&
process.env.TRAVIS_PULL_REQUEST_SLUG !== 'desktop/desktop'
) {
return true
}
if (
isAzurePipelines() &&
process.env.SYSTEM_PULLREQUEST_ISFORK != null &&
process.env.SYSTEM_PULLREQUEST_ISFORK === 'True'
) {
return true
}
return false
}
export function isTravis() {
return process.platform === 'linux' && process.env.TRAVIS === 'true'
}
export function isCircleCI() {
return process.platform === 'darwin' && process.env.CIRCLECI === 'true'
}
export function isAppveyor() {
return process.platform === 'win32' && process.env.APPVEYOR === 'True'
}
export function isAzurePipelines() {
return (
process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI ===
'https://github.visualstudio.com/'
)
}
export function getReleaseBranchName(): string {
return (
process.env.CIRCLE_BRANCH || // macOS
process.env.APPVEYOR_REPO_BRANCH || // Windows
process.env.TRAVIS_BRANCH || // Travis CI
process.env.BUILD_SOURCEBRANCHNAME || // Azure Pipelines
''
)
}