Merge pull request #48 from iamstarkov/feat/CI_BASE_SHA

Expose an actual SHA for pull requests as CI_PR_SHA(_SHORT).
This commit is contained in:
Franz Diebold 2022-07-16 11:41:48 +02:00 committed by GitHub
commit 72510ef7e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 34 additions and 8 deletions

View file

@ -28,6 +28,8 @@ jobs:
echo "CI_BASE_REF=$CI_BASE_REF" echo "CI_BASE_REF=$CI_BASE_REF"
echo "CI_SHA_SHORT=$CI_SHA_SHORT" echo "CI_SHA_SHORT=$CI_SHA_SHORT"
echo "CI_SHA=$CI_SHA" echo "CI_SHA=$CI_SHA"
echo "CI_PR_SHA_SHORT=$CI_PR_SHA_SHORT"
echo "CI_PR_SHA=$CI_PR_SHA"
echo "CI_PR_NUMBER=$CI_PR_NUMBER" echo "CI_PR_NUMBER=$CI_PR_NUMBER"
echo "CI_PR_ID=$CI_PR_ID" echo "CI_PR_ID=$CI_PR_ID"
echo "CI_PR_TITLE=$CI_PR_TITLE" echo "CI_PR_TITLE=$CI_PR_TITLE"
@ -77,6 +79,8 @@ jobs:
echo "CI_BASE_REF=$Env:CI_BASE_REF" echo "CI_BASE_REF=$Env:CI_BASE_REF"
echo "CI_SHA_SHORT=$Env:CI_SHA_SHORT" echo "CI_SHA_SHORT=$Env:CI_SHA_SHORT"
echo "CI_SHA=$Env:CI_SHA" echo "CI_SHA=$Env:CI_SHA"
echo "CI_PR_SHA_SHORT=$Env:CI_PR_SHA_SHORT"
echo "CI_PR_SHA=$Env:CI_PR_SHA"
echo "CI_PR_NUMBER=$Env:CI_PR_NUMBER" echo "CI_PR_NUMBER=$Env:CI_PR_NUMBER"
echo "CI_PR_ID=$Env:CI_PR_ID" echo "CI_PR_ID=$Env:CI_PR_ID"
echo "CI_PR_TITLE=$Env:CI_PR_TITLE" echo "CI_PR_TITLE=$Env:CI_PR_TITLE"
@ -126,6 +130,8 @@ jobs:
echo "CI_BASE_REF=$CI_BASE_REF" echo "CI_BASE_REF=$CI_BASE_REF"
echo "CI_SHA_SHORT=$CI_SHA_SHORT" echo "CI_SHA_SHORT=$CI_SHA_SHORT"
echo "CI_SHA=$CI_SHA" echo "CI_SHA=$CI_SHA"
echo "CI_PR_SHA_SHORT=$CI_PR_SHA_SHORT"
echo "CI_PR_SHA=$CI_PR_SHA"
echo "CI_PR_NUMBER=$CI_PR_NUMBER" echo "CI_PR_NUMBER=$CI_PR_NUMBER"
echo "CI_PR_ID=$CI_PR_ID" echo "CI_PR_ID=$CI_PR_ID"
echo "CI_PR_TITLE=$CI_PR_TITLE" echo "CI_PR_TITLE=$CI_PR_TITLE"

View file

@ -1,15 +1,19 @@
.PHONY: help
help: ## Show this help.
@egrep '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-22s\033[0m %s\n", $$1, $$2}'
.PHONY: install .PHONY: install
install: install: ## Install dependencies.
npm install npm install
.PHONY: lint .PHONY: lint
lint: lint: ## Lint code.
npm run lint npm run lint
.PHONY: test .PHONY: test
test: test: ## Run tests.
npm run test npm run test
.PHONY: build .PHONY: build
build: build: ## Build code for distribution.
npm run build npm run build

View file

@ -2,7 +2,7 @@
[![GitHub Action: View on Marketplace](https://img.shields.io/badge/GitHub%20Action-View_on_Marketplace-28a745?logo=github)](https://github.com/marketplace/actions/github-environment-variables-action) [![GitHub Action: View on Marketplace](https://img.shields.io/badge/GitHub%20Action-View_on_Marketplace-28a745?logo=github)](https://github.com/marketplace/actions/github-environment-variables-action)
[![Demo: available](https://img.shields.io/badge/Demo-available-orange)](.github/workflows/demo.yml) [![Demo: available](https://img.shields.io/badge/Demo-available-orange)](.github/workflows/demo.yml)
[![Version: v2.4.0](https://img.shields.io/badge/Version-v2.4.0-brightgreen)](https://github.com/FranzDiebold/github-env-vars-action/releases/tag/v2.4.0) [![Version: v2.5.0](https://img.shields.io/badge/Version-v2.5.0-brightgreen)](https://github.com/FranzDiebold/github-env-vars-action/releases/tag/v2.5.0)
[![Lint and Test](https://github.com/FranzDiebold/github-env-vars-action/workflows/Lint%20and%20Test/badge.svg)](https://github.com/FranzDiebold/github-env-vars-action/actions?query=workflow%3A%22Lint+and+Test%22) [![Lint and Test](https://github.com/FranzDiebold/github-env-vars-action/workflows/Lint%20and%20Test/badge.svg)](https://github.com/FranzDiebold/github-env-vars-action/actions?query=workflow%3A%22Lint+and+Test%22)
[![license: MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](./LICENSE) [![license: MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](./LICENSE)
@ -30,6 +30,8 @@ A [GitHub Action](https://github.com/features/actions) to expose useful environm
| `CI_BASE_REF` | Only set for forked repositories / pull request. The branch of the base repository / the base branch name. Copy of `GITHUB_BASE_REF` - for reasons of completeness. | `main` | | `CI_BASE_REF` | Only set for forked repositories / pull request. The branch of the base repository / the base branch name. Copy of `GITHUB_BASE_REF` - for reasons of completeness. | `main` |
| `CI_SHA_SHORT` | The shortened commit SHA (8 characters) that triggered the workflow. | `ffac537e` | | `CI_SHA_SHORT` | The shortened commit SHA (8 characters) that triggered the workflow. | `ffac537e` |
| `CI_SHA` | The commit SHA that triggered the workflow. Copy of `GITHUB_SHA` - for reasons of completeness. | `ffac537e6cbbf934b08745a378932722df287a53` | | `CI_SHA` | The commit SHA that triggered the workflow. Copy of `GITHUB_SHA` - for reasons of completeness. | `ffac537e6cbbf934b08745a378932722df287a53` |
| `CI_PR_SHA_SHORT` | The shortened latest commit SHA in the pull request's base branch. Short version of `CI_PR_SHA`. Only set for pull requests. | `010b249` |
| `CI_PR_SHA` | The latest commit SHA in the pull request's base branch. Long version of `CI_PR_SHA_SHORT`. Only set for pull requests. | `010b2491902d50e8623934f5bc43763ff5991642` |
| `CI_PR_NUMBER` | The number of the pull request. Only set for pull requests. | `42` | | `CI_PR_NUMBER` | The number of the pull request. Only set for pull requests. | `42` |
| `CI_PR_ID` | Copy of `CI_PR_NUMBER` for completeness. | `42` | | `CI_PR_ID` | Copy of `CI_PR_NUMBER` for completeness. | `42` |
| `CI_PR_TITLE` | The title of the pull request. Only set for pull requests. | `Add feature xyz.` | | `CI_PR_TITLE` | The title of the pull request. Only set for pull requests. | `Add feature xyz.` |

7
dist/index.js vendored
View file

@ -192,6 +192,13 @@ try {
const pullRequest = github.context.payload && const pullRequest = github.context.payload &&
github.context.payload.pull_request; github.context.payload.pull_request;
if (pullRequest) { if (pullRequest) {
const prSha = github.event.pull_request.head.sha;
core.exportVariable('CI_PR_SHA_SHORT', getShaShort(prSha));
core.info(`Set CI_PR_SHA_SHORT=${process.env.CI_PR_SHA_SHORT}`);
core.exportVariable('CI_PR_SHA', prSha);
core.info(`Set CI_PR_SHA=${process.env.CI_PR_SHA}`);
const prNumber = pullRequest.number; const prNumber = pullRequest.number;
core.exportVariable('CI_PR_NUMBER', prNumber); core.exportVariable('CI_PR_NUMBER', prNumber);
core.info(`Set CI_PR_NUMBER=${process.env.CI_PR_NUMBER}`); core.info(`Set CI_PR_NUMBER=${process.env.CI_PR_NUMBER}`);

View file

@ -186,6 +186,13 @@ try {
const pullRequest = github.context.payload && const pullRequest = github.context.payload &&
github.context.payload.pull_request; github.context.payload.pull_request;
if (pullRequest) { if (pullRequest) {
const prSha = github.event.pull_request.head.sha;
core.exportVariable('CI_PR_SHA_SHORT', getShaShort(prSha));
core.info(`Set CI_PR_SHA_SHORT=${process.env.CI_PR_SHA_SHORT}`);
core.exportVariable('CI_PR_SHA', prSha);
core.info(`Set CI_PR_SHA=${process.env.CI_PR_SHA}`);
const prNumber = pullRequest.number; const prNumber = pullRequest.number;
core.exportVariable('CI_PR_NUMBER', prNumber); core.exportVariable('CI_PR_NUMBER', prNumber);
core.info(`Set CI_PR_NUMBER=${process.env.CI_PR_NUMBER}`); core.info(`Set CI_PR_NUMBER=${process.env.CI_PR_NUMBER}`);

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "github-env-vars-action", "name": "github-env-vars-action",
"version": "2.4.0", "version": "2.5.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "github-env-vars-action", "name": "github-env-vars-action",
"version": "2.4.0", "version": "2.5.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.9.0", "@actions/core": "^1.9.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "github-env-vars-action", "name": "github-env-vars-action",
"version": "2.4.0", "version": "2.5.0",
"description": "A GitHub Action to expose useful environment variables.", "description": "A GitHub Action to expose useful environment variables.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {