@@ -209,19 +209,61 @@ function gitRevision(): string | undefined {
209
209
* Tries to guess a release name based on environmental data.
210
210
*/
211
211
export function determineReleaseName ( ) : string | undefined {
212
- return (
212
+ // This list is in approximate alpha order, separated into 3 categories:
213
+ // 1. Git providers
214
+ // 2. CI providers with specific environment variables (has the provider name in the variable name)
215
+ // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)
216
+
217
+ const possibleReleaseNameOfGitProvider =
213
218
// GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables
214
219
process . env [ "GITHUB_SHA" ] ||
215
- // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata
216
- process . env [ "COMMIT_REF" ] ||
217
- // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables
218
- process . env [ "CF_PAGES_COMMIT_SHA" ] ||
220
+ // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
221
+ process . env [ "CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" ] ||
222
+ process . env [ "CI_BUILD_REF" ] ||
223
+ process . env [ "CI_COMMIT_SHA" ] ||
224
+ // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/
225
+ process . env [ "BITBUCKET_COMMIT" ] ;
226
+
227
+ const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =
228
+ // AppVeyor - https://www.appveyor.com/docs/environment-variables/
229
+ process . env [ "APPVEYOR_PULL_REQUEST_HEAD_COMMIT" ] ||
230
+ process . env [ "APPVEYOR_REPO_COMMIT" ] ||
219
231
// AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
220
232
process . env [ "CODEBUILD_RESOLVED_SOURCE_VERSION" ] ||
221
- // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/
222
- process . env [ "BITBUCKET_COMMIT" ] ||
223
- // CircleCI - https://circleci.com/docs/2.0/env-vars/
233
+ // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html
234
+ process . env [ "AWS_COMMIT_ID" ] ||
235
+ // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml
236
+ process . env [ "BUILD_SOURCEVERSION" ] ||
237
+ // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/
238
+ process . env [ "GIT_CLONE_COMMIT_HASH" ] ||
239
+ // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables
240
+ process . env [ "BUDDY_EXECUTION_REVISION" ] ||
241
+ // Builtkite - https://buildkite.com/docs/pipelines/environment-variables
242
+ process . env [ "BUILDKITE_COMMIT" ] ||
243
+ // CircleCI - https://circleci.com/docs/variables/
224
244
process . env [ "CIRCLE_SHA1" ] ||
245
+ // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables
246
+ process . env [ "CIRRUS_CHANGE_IN_REPO" ] ||
247
+ // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/
248
+ process . env [ "CF_REVISION" ] ||
249
+ // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/
250
+ process . env [ "CM_COMMIT" ] ||
251
+ // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables
252
+ process . env [ "CF_PAGES_COMMIT_SHA" ] ||
253
+ // Drone - https://docs.drone.io/pipeline/environment/reference/
254
+ process . env [ "DRONE_COMMIT_SHA" ] ||
255
+ // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables
256
+ process . env [ "FC_GIT_COMMIT_SHA" ] ||
257
+ // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci
258
+ process . env [ "HEROKU_TEST_RUN_COMMIT_VERSION" ] ||
259
+ // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases
260
+ process . env [ "HEROKU_SLUG_COMMIT" ] ||
261
+ // Render - https://render.com/docs/environment-variables
262
+ process . env [ "RENDER_GIT_COMMIT" ] ||
263
+ // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables
264
+ process . env [ "SEMAPHORE_GIT_SHA" ] ||
265
+ // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables
266
+ process . env [ "TRAVIS_PULL_REQUEST_SHA" ] ||
225
267
// Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables
226
268
process . env [ "VERCEL_GIT_COMMIT_SHA" ] ||
227
269
process . env [ "VERCEL_GITHUB_COMMIT_SHA" ] ||
@@ -230,13 +272,28 @@ export function determineReleaseName(): string | undefined {
230
272
// Zeit (now known as Vercel)
231
273
process . env [ "ZEIT_GITHUB_COMMIT_SHA" ] ||
232
274
process . env [ "ZEIT_GITLAB_COMMIT_SHA" ] ||
233
- process . env [ "ZEIT_BITBUCKET_COMMIT_SHA" ] ||
234
- // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables
235
- process . env [ "FC_GIT_COMMIT_SHA" ] ||
236
- // Heroku #1 https://devcenter.heroku.com/changelog-items/630
275
+ process . env [ "ZEIT_BITBUCKET_COMMIT_SHA" ] ;
276
+
277
+ const possibleReleaseNameOfCiProvidersWithGenericEnvVar =
278
+ // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables
279
+ process . env [ "CI_COMMIT_ID" ] ||
280
+ // Coolify - https://coolify.io/docs/knowledge-base/environment-variables
281
+ process . env [ "SOURCE_COMMIT" ] ||
282
+ // Heroku #3 https://devcenter.heroku.com/changelog-items/630
237
283
process . env [ "SOURCE_VERSION" ] ||
238
- // Heroku #2 https://docs.sentry.io/product/integrations/deployment/heroku/#configure-releases
239
- process . env [ "HEROKU_SLUG_COMMIT" ] ||
284
+ // Jenkins - https://plugins.jenkins.io/git/#environment-variables
285
+ process . env [ "GIT_COMMIT" ] ||
286
+ // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata
287
+ process . env [ "COMMIT_REF" ] ||
288
+ // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html
289
+ process . env [ "BUILD_VCS_NUMBER" ] ||
290
+ // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment
291
+ process . env [ "CI_COMMIT_SHA" ] ;
292
+
293
+ return (
294
+ possibleReleaseNameOfGitProvider ||
295
+ possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||
296
+ possibleReleaseNameOfCiProvidersWithGenericEnvVar ||
240
297
gitRevision ( )
241
298
) ;
242
299
}
0 commit comments