mirror of
https://github.com/rlespinasse/github-slug-action.git
synced 2026-06-11 00:53:14 +00:00
feat: add GITHUB_REF_NAME env var
GITHUB_REF_NAME will contain the reference name (branch or tag) - based on GITHUB_HEAD_REF in a pull-request event context, - based on GITHUB_REF in others event contexts.
This commit is contained in:
committed by
GitHub
parent
b71a8a1cbc
commit
12a7510630
54
src/main.ts
54
src/main.ts
@@ -1,5 +1,6 @@
|
||||
import * as core from '@actions/core'
|
||||
import {
|
||||
removeRef,
|
||||
slug,
|
||||
slug_cs,
|
||||
slugref,
|
||||
@@ -31,6 +32,11 @@ const GITHUB_EVENT_PATH = 'GITHUB_EVENT_PATH'
|
||||
const GITHUB_REPOSITORY_OWNER_PART = 'GITHUB_REPOSITORY_OWNER_PART'
|
||||
const GITHUB_REPOSITORY_NAME_PART = 'GITHUB_REPOSITORY_NAME_PART'
|
||||
|
||||
/**
|
||||
* New environments variables keys
|
||||
*/
|
||||
const GITHUB_REF_NAME = 'GITHUB_REF_NAME'
|
||||
|
||||
/**
|
||||
* Slugged outputs environments variables keys
|
||||
*/
|
||||
@@ -50,6 +56,8 @@ const GITHUB_BASE_REF_SLUG = 'GITHUB_BASE_REF_SLUG'
|
||||
const GITHUB_BASE_REF_SLUG_CS = 'GITHUB_BASE_REF_SLUG_CS'
|
||||
const GITHUB_EVENT_REF_SLUG = 'GITHUB_EVENT_REF_SLUG'
|
||||
const GITHUB_EVENT_REF_SLUG_CS = 'GITHUB_EVENT_REF_SLUG_CS'
|
||||
const GITHUB_REF_NAME_SLUG = 'GITHUB_REF_NAME_SLUG'
|
||||
const GITHUB_REF_NAME_SLUG_CS = 'GITHUB_REF_NAME_SLUG_CS'
|
||||
|
||||
/**
|
||||
* URL-Slugged outputs environments variables keys
|
||||
@@ -72,6 +80,8 @@ const GITHUB_BASE_REF_SLUG_URL = 'GITHUB_BASE_REF_SLUG_URL'
|
||||
const GITHUB_BASE_REF_SLUG_URL_CS = 'GITHUB_BASE_REF_SLUG_URL_CS'
|
||||
const GITHUB_EVENT_REF_SLUG_URL = 'GITHUB_EVENT_REF_SLUG_URL'
|
||||
const GITHUB_EVENT_REF_SLUG_URL_CS = 'GITHUB_EVENT_REF_SLUG_URL_CS'
|
||||
const GITHUB_REF_NAME_SLUG_URL = 'GITHUB_REF_NAME_SLUG_URL'
|
||||
const GITHUB_REF_NAME_SLUG_URL_CS = 'GITHUB_REF_NAME_SLUG_URL_CS'
|
||||
|
||||
/**
|
||||
* Shorted outputs environments variables keys
|
||||
@@ -168,6 +178,8 @@ async function run(): Promise<void> {
|
||||
exportSlugUrlRefCS(GITHUB_BASE_REF, GITHUB_BASE_REF_SLUG_URL_CS)
|
||||
|
||||
exportShortSha(GITHUB_SHA, GITHUB_SHA_SHORT)
|
||||
|
||||
exportBranchName()
|
||||
} catch (error) {
|
||||
core.setFailed(error.message)
|
||||
}
|
||||
@@ -259,17 +271,25 @@ function exportSecondPartSlug(
|
||||
function exportSlugRefCS(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
core.exportVariable(outputKey, slugref_cs(envVar))
|
||||
exportSlugRefCSValue(envVar, outputKey)
|
||||
}
|
||||
}
|
||||
|
||||
function exportSlugRefCSValue(envVar: string, outputKey: string): void {
|
||||
core.exportVariable(outputKey, slugref_cs(envVar))
|
||||
}
|
||||
|
||||
function exportSlugRef(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
core.exportVariable(outputKey, slugref(envVar))
|
||||
exportSlugRefValue(envVar, outputKey)
|
||||
}
|
||||
}
|
||||
|
||||
function exportSlugRefValue(envVar: string, outputKey: string): void {
|
||||
core.exportVariable(outputKey, slugref(envVar))
|
||||
}
|
||||
|
||||
function exportSlugUrlCS(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
@@ -334,17 +354,25 @@ function exportSecondPartSlugUrl(
|
||||
function exportSlugUrlRefCS(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
core.exportVariable(outputKey, slugurlref_cs(envVar))
|
||||
exportSlugUrlRefCSValue(envVar, outputKey)
|
||||
}
|
||||
}
|
||||
|
||||
function exportSlugUrlRefCSValue(envVar: string, outputKey: string): void {
|
||||
core.exportVariable(outputKey, slugurlref_cs(envVar))
|
||||
}
|
||||
|
||||
function exportSlugUrlRef(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
core.exportVariable(outputKey, slugurlref(envVar))
|
||||
exportSlugUrlRefValue(envVar, outputKey)
|
||||
}
|
||||
}
|
||||
|
||||
function exportSlugUrlRefValue(envVar: string, outputKey: string): void {
|
||||
core.exportVariable(outputKey, slugurlref(envVar))
|
||||
}
|
||||
|
||||
function exportShortSha(inputKey: string, outputKey: string): void {
|
||||
const envVar = process.env[inputKey]
|
||||
if (envVar) {
|
||||
@@ -352,4 +380,22 @@ function exportShortSha(inputKey: string, outputKey: string): void {
|
||||
}
|
||||
}
|
||||
|
||||
function exportBranchName(): void {
|
||||
//GITHUB_HEAD_REF is only set for pull request events https://docs.github.com/en/actions/reference/environment-variables
|
||||
const isPullRequest = !!process.env.GITHUB_HEAD_REF
|
||||
let refName
|
||||
if (isPullRequest) {
|
||||
refName = process.env.GITHUB_HEAD_REF
|
||||
} else {
|
||||
refName = process.env.GITHUB_REF
|
||||
}
|
||||
if (refName) {
|
||||
core.exportVariable(GITHUB_REF_NAME, removeRef(refName))
|
||||
exportSlugRefValue(refName, GITHUB_REF_NAME_SLUG)
|
||||
exportSlugRefCSValue(refName, GITHUB_REF_NAME_SLUG_CS)
|
||||
exportSlugUrlRefValue(refName, GITHUB_REF_NAME_SLUG_URL)
|
||||
exportSlugUrlRefCSValue(refName, GITHUB_REF_NAME_SLUG_URL_CS)
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
||||
|
||||
@@ -111,6 +111,6 @@ function replaceAnyNonUrlCharactersWithHyphen(envVar: string): string {
|
||||
return envVar.replace(RegExp('[._]', 'g'), '-')
|
||||
}
|
||||
|
||||
function removeRef(envVar: string): string {
|
||||
export function removeRef(envVar: string): string {
|
||||
return envVar.replace(RegExp('^refs/(heads|tags|pull)/'), '')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user