name: "GitHub Slug Action" description: "GitHub Action to expose slug value of environment variables inside your GitHub workflow" author: "Romain Lespinasse" branding: icon: "minimize" color: "blue" inputs: prefix: description: "Value to prepend to each generated variable" default: "" required: false slug-maxlength: description: "Max length of the slugified values" default: "63" required: true short-length: description: "Length of the shortify values (git default if empty)" required: false runs: using: "composite" steps: - run: $GITHUB_ACTION_PATH/preflight.sh id: prefligth shell: bash env: INPUT_SLUG_MAXLENGTH: ${{ inputs.slug-maxlength }} INPUT_SHORT_LENGTH: ${{ inputs.short-length }} # From Environment Variables - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REPOSITORY value: ${{ github.repository }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_HEAD_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_BASE_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} # From Specific values - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_EVENT_REF value: ${{ github.event.ref }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REF_NAME value: ${{ github.ref_name }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REF_POINT value: ${{ env.GITHUB_HEAD_REF_RAW || env.GITHUB_REF_NAME_RAW }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} env: GITHUB_HEAD_REF_RAW: ${{ github.head_ref }} GITHUB_REF_NAME_RAW: ${{ github.ref_name }} # From Calculated values - id: get-github-repository-owner-part run: | ownerpart=$(echo $GITHUB_REPOSITORY | cut -d/ -f1) if [ -f "$GITHUB_OUTPUT" ]; then echo "github-repository-owner-part=${ownerpart}" >> "$GITHUB_OUTPUT" else echo "::set-output name=github-repository-owner-part::${ownerpart}" fi shell: bash - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REPOSITORY_OWNER_PART value: ${{ steps.get-github-repository-owner-part.outputs.github-repository-owner-part }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - id: get-github-repository-name-part run: | namepart=$(echo $GITHUB_REPOSITORY | cut -d/ -f2) if [ -f "$GITHUB_OUTPUT" ]; then echo "github-repository-name-part=${namepart}" >> "$GITHUB_OUTPUT" else echo "::set-output name=github-repository-name-part::${namepart}" fi shell: bash - uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # v1.4.0 with: key: GITHUB_REPOSITORY_NAME_PART value: ${{ steps.get-github-repository-name-part.outputs.github-repository-name-part }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} # From sha - uses: rlespinasse/shortify-git-revision@c90ba7007ef6c152254d10b9f1a327966ab13077 # v1.6.0 with: name: GITHUB_SHA short-on-error: true length: ${{ steps.prefligth.outputs.PREFLIGHT_SHORT_LENGTH }} prefix: ${{ inputs.prefix }} - uses: rlespinasse/shortify-git-revision@c90ba7007ef6c152254d10b9f1a327966ab13077 # v1.6.0 with: name: GITHUB_EVENT_PULL_REQUEST_HEAD_SHA revision: ${{ github.event.pull_request.head.sha }} short-on-error: true length: ${{ steps.prefligth.outputs.PREFLIGHT_SHORT_LENGTH }} prefix: ${{ inputs.prefix }}