Skip to content

Latest commit

 

History

History
188 lines (141 loc) · 13 KB

README.md

File metadata and controls

188 lines (141 loc) · 13 KB

GitHub Slug action

Release Lint Public workflows that use this action Licence

This GitHub Action will expose the slug/short values of some GitHub environment variables inside your GitHub workflow.

Table of Contents

Overview

SLUG on a variable will

  • put the variable content in lower case
  • replace any character by - except 0-9, a-z, ., and _
  • remove leading and trailing - character
  • limit the string size to 63 characters
Others Slug-ish commands are available

  • SLUG_URL on a variable to have a slug variable compliant to be used in an URL

    • Like SLUG but . is also replaced by -
  • SHORT on a variable will limit the string size to 8 characters

    • Useful for sha value
  • <KEY>_PART on a variable will give a part of a variable defined by a key

    • Like GITHUB_REPOSITORY_OWNER_PART for the owner part of GITHUB_REPOSITORY
  • <VAR>_CS on others variables to keep the value case-sensitive

    • Like GITHUB_REF_SLUG_CS

Use this action

Add this in your workflow

- name: Inject slug/short variables
  uses: rlespinasse/[email protected]

Check for more examples (OS usage, URL use, ...)

Tip: Use Dependabot to maintain your github-slug-action version updated in your GitHub workflows.

Available Environment variables

Note: If you don't find what you search for, read more about available GitHub variables, and propose a new custom variable.

Partial variables

Variable Partial version of Description
GITHUB_REPOSITORY_OWNER_PART GITHUB_REPOSITORY The Owner part of GITHUB_REPOSITORY variable
GITHUB_REPOSITORY_NAME_PART GITHUB_REPOSITORY The Repository name part of GITHUB_REPOSITORY variable

Slug variables

NOTE: _CS suffix available

Variable Slug version of Description
GITHUB_REPOSITORY_SLUG GITHUB_REPOSITORY The owner and repository name.
GITHUB_REPOSITORY
_OWNER_PART_SLUG
GITHUB_REPOSITORY_OWNER_PART The owner name.
GITHUB_REPOSITORY
_NAME_PART_SLUG
GITHUB_REPOSITORY_NAME_PART The repository name.
GITHUB_REF_SLUG GITHUB_REF The branch or tag ref that triggered the workflow.
GITHUB_HEAD_REF_SLUG GITHUB_HEAD_REF The branch of the head repository.
Only set for pull-request event and forked repositories.
GITHUB_BASE_REF_SLUG GITHUB_BASE_REF The branch of the base repository.
Only set for pull-request event and forked repositories.
GITHUB_EVENT_REF_SLUG github.event.ref
Only set for [following webhook events][4]
  • create
  • delete

Slug URL variables

NOTE: _CS suffix available

Variable Slug URL version of Description
GITHUB_REPOSITORY_SLUG_URL GITHUB_REPOSITORY The owner and repository name.
GITHUB_REPOSITORY
_OWNER_PART_SLUG_URL
GITHUB_REPOSITORY_OWNER_PART The owner name.
GITHUB_REPOSITORY
_NAME_PART_SLUG_URL
GITHUB_REPOSITORY_NAME_PART The repository name.
GITHUB_REF_SLUG_URL GITHUB_REF The branch or tag ref that triggered the workflow.
GITHUB_HEAD_REF_SLUG_URL GITHUB_HEAD_REF The branch of the head repository.
Only set for [pull-request][4] event and forked repositories.
GITHUB_BASE_REF_SLUG_URL GITHUB_BASE_REF The branch of the base repository.
Only set for [pull-request][4] event and forked repositories.
GITHUB_EVENT_REF_SLUG_URL github.event.ref
Only set for [following webhook events][4]
  • create
  • delete

Short variables

Variable Short version of Description
GITHUB_SHA_SHORT GITHUB_SHA The commit SHA that triggered the workflow.
GITHUB_EVENT
_PULL_REQUEST
_HEAD_SHA_SHORT
github.event
.pull_request
.head.sha
The commit SHA on pull request that trigger workflow.
Only set for [following webhook events][4]
  • pull_request
  • pull_request_review
  • pull_request_review_comment
  • pull_request_target

Contribute

Follow Developers guide

Troubleshooting

One of environement variable don't work as intended

Note: GitHub reserves the GITHUB_ environment variable prefix for internal use by GitHub. Setting an environment variable or secret with the GITHUB_ prefix will result in an error.

Currently, a GitHub workflow setting a GITHUB_ variable don't ended up in error. And if a custom GITHUB_ variable is in conflict with an official GITHUB_ variable, the offical GITHUB_ variable will override custom one.

Test workflow

name: Test
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo ${GITHUB_REF}
      # print "refs/heads/v3.x"
      - run: echo "GITHUB_REF=one_value" >> "$GITHUB_ENV"
      - run: echo ${GITHUB_REF}
      # print "refs/heads/v3.x"
      - run: echo "GITHUB_REF_SLUG=another_value" >> "$GITHUB_ENV"
      - run: echo ${GITHUB_REF_SLUG}
      # print "another_value"

An action could not be found at the URI

If your workflow fail on the Set up job task with this kind of log :

Download action repository 'rlespinasse/github-slug-action@master'
##[error]An action could not be found at the URI 'https://api.github.com/repos/rlespinasse/github-slug-action/tarball/master'

The master branch don't exists anymore.

The master branch EOL have been set to 2020-10-25 after a 6-month deprecation period (more information on the EOL issue)

Please, use the current branch v3.x or a version tag (see releases pages) in order to fix your workflow.

Thanks for talking about us