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:
Antoine Méausoone
2021-09-15 17:00:11 +02:00
committed by GitHub
parent b71a8a1cbc
commit 12a7510630
7 changed files with 146 additions and 30 deletions

51
dist/index.js vendored
View File

@@ -110,6 +110,10 @@ 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
*/
@@ -127,6 +131,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
*/
@@ -144,6 +150,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
*/
@@ -192,6 +200,7 @@ function run() {
exportSlugUrlRef(GITHUB_BASE_REF, GITHUB_BASE_REF_SLUG_URL);
exportSlugUrlRefCS(GITHUB_BASE_REF, GITHUB_BASE_REF_SLUG_URL_CS);
exportShortSha(GITHUB_SHA, GITHUB_SHA_SHORT);
exportBranchName();
}
catch (error) {
core.setFailed(error.message);
@@ -253,15 +262,21 @@ function exportSecondPartSlug(inputKey, separator, outputKey) {
function exportSlugRefCS(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
core.exportVariable(outputKey, slug_1.slugref_cs(envVar));
exportSlugRefCSValue(envVar, outputKey);
}
}
function exportSlugRefCSValue(envVar, outputKey) {
core.exportVariable(outputKey, slug_1.slugref_cs(envVar));
}
function exportSlugRef(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
core.exportVariable(outputKey, slug_1.slugref(envVar));
exportSlugRefValue(envVar, outputKey);
}
}
function exportSlugRefValue(envVar, outputKey) {
core.exportVariable(outputKey, slug_1.slugref(envVar));
}
function exportSlugUrlCS(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
@@ -305,21 +320,45 @@ function exportSecondPartSlugUrl(inputKey, separator, outputKey) {
function exportSlugUrlRefCS(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
core.exportVariable(outputKey, slug_1.slugurlref_cs(envVar));
exportSlugUrlRefCSValue(envVar, outputKey);
}
}
function exportSlugUrlRefCSValue(envVar, outputKey) {
core.exportVariable(outputKey, slug_1.slugurlref_cs(envVar));
}
function exportSlugUrlRef(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
core.exportVariable(outputKey, slug_1.slugurlref(envVar));
exportSlugUrlRefValue(envVar, outputKey);
}
}
function exportSlugUrlRefValue(envVar, outputKey) {
core.exportVariable(outputKey, slug_1.slugurlref(envVar));
}
function exportShortSha(inputKey, outputKey) {
const envVar = process.env[inputKey];
if (envVar) {
core.exportVariable(outputKey, short_1.shortsha(envVar));
}
}
function exportBranchName() {
//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, slug_1.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();
@@ -435,6 +474,7 @@ exports.getInput = getInput;
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function setOutput(name, value) {
process.stdout.write(os.EOL);
command_1.issueCommand('set-output', { name }, value);
}
exports.setOutput = setOutput;
@@ -738,7 +778,7 @@ exports.get_second_part = get_second_part;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.slugurlref = exports.slugurlref_cs = exports.slugurl = exports.slugurl_cs = exports.slugref = exports.slugref_cs = exports.slug = exports.slug_cs = void 0;
exports.removeRef = exports.slugurlref = exports.slugurlref_cs = exports.slugurl = exports.slugurl_cs = exports.slugref = exports.slugref_cs = exports.slug = exports.slug_cs = void 0;
const MAX_SLUG_STRING_SIZE = 63;
/**
* slug_cs will take envVar and then :
@@ -848,6 +888,7 @@ function replaceAnyNonUrlCharactersWithHyphen(envVar) {
function removeRef(envVar) {
return envVar.replace(RegExp('^refs/(heads|tags|pull)/'), '');
}
exports.removeRef = removeRef;
/***/ }),