mirror of
https://github.com/FranzDiebold/github-env-vars-action.git
synced 2024-12-29 02:14:51 -05:00
94 lines
2.8 KiB
JavaScript
94 lines
2.8 KiB
JavaScript
// Franz Diebold
|
|
|
|
const core = require('@actions/core');
|
|
|
|
/**
|
|
* Get the repository owner from the repository string.
|
|
* @param {string} repository
|
|
* @return {string} The owner of the repository.
|
|
*/
|
|
function getRepositoryOwner(repository) {
|
|
return repository ? repository.split('/')[0] : null;
|
|
}
|
|
|
|
/**
|
|
* Get the repository name from the repository string.
|
|
* @param {string} repository
|
|
* @return {string} The name of the repository.
|
|
*/
|
|
function getRepositoryName(repository) {
|
|
return repository ? repository.split('/')[1] : null;
|
|
}
|
|
|
|
/**
|
|
* Get the ref name from the ref string.
|
|
* @param {string} ref
|
|
* @return {string} The ref name.
|
|
*/
|
|
function getRefName(ref) {
|
|
return ref ? ref.split('/').slice(2).join('/') : null;
|
|
}
|
|
|
|
/**
|
|
* Get the short SHA from the full SHA.
|
|
* @param {string} fullSha
|
|
* @return {string} The short SHA.
|
|
*/
|
|
function getShaShort(fullSha) {
|
|
return fullSha ? fullSha.substring(0, 8) : null;
|
|
}
|
|
|
|
// https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-environment-variables#default-environment-variables
|
|
try {
|
|
// i.e. FranzDiebold/github-env-vars-action
|
|
repository = process.env.GITHUB_REPOSITORY;
|
|
|
|
repositoryOwner = getRepositoryOwner(repository);
|
|
if (repositoryOwner) {
|
|
core.exportVariable('GITHUB_REPOSITORY_OWNER', repositoryOwner);
|
|
core.info(`Set GITHUB_REPOSITORY_OWNER=` +
|
|
`${process.env.GITHUB_REPOSITORY_OWNER}`);
|
|
} else {
|
|
core.warning('Environment variable "GITHUB_REPOSITORY" not set. ' +
|
|
'Cannot set "GITHUB_REPOSITORY_OWNER".');
|
|
}
|
|
|
|
repositoryName = getRepositoryName(repository);
|
|
if (repositoryName) {
|
|
core.exportVariable('GITHUB_REPOSITORY_NAME', repositoryName);
|
|
core.info(`Set GITHUB_REPOSITORY_NAME=` +
|
|
`${process.env.GITHUB_REPOSITORY_NAME}`);
|
|
} else {
|
|
core.warning('Environment variable "GITHUB_REPOSITORY" not set. ' +
|
|
'Cannot set "GITHUB_REPOSITORY_NAME".');
|
|
}
|
|
|
|
// i.e. refs/heads/feat/feature-branch-1
|
|
refName = getRefName(process.env.GITHUB_REF);
|
|
if (refName) {
|
|
core.exportVariable('GITHUB_REF_NAME', refName);
|
|
core.info(`Set GITHUB_REF_NAME=${process.env.GITHUB_REF_NAME}`);
|
|
} else {
|
|
core.warning('Environment variable "GITHUB_REF" not set. ' +
|
|
'Cannot set "GITHUB_REF_NAME".');
|
|
}
|
|
|
|
// i.e. ffac537e6cbbf934b08745a378932722df287a53
|
|
shaShort = getShaShort(process.env.GITHUB_SHA);
|
|
if (shaShort) {
|
|
core.exportVariable('GITHUB_SHA_SHORT', shaShort);
|
|
core.info(`Set GITHUB_SHA_SHORT=${process.env.GITHUB_SHA_SHORT}`);
|
|
} else {
|
|
core.warning('Environment variable "GITHUB_SHA" not set. ' +
|
|
'Cannot set "GITHUB_SHA_SHORT".');
|
|
}
|
|
} catch (error) {
|
|
core.setFailed(error.message);
|
|
}
|
|
|
|
module.exports = {
|
|
getRepositoryOwner,
|
|
getRepositoryName,
|
|
getRefName,
|
|
getShaShort,
|
|
};
|