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 }} - uses: rlespinasse/slugify-value@v1.2.1 with: key: GITHUB_REPOSITORY value: ${{ github.repository }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@v1.2.1 with: key: GITHUB_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@v1.2.0 with: key: GITHUB_HEAD_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - uses: rlespinasse/slugify-value@v1.2.1 with: key: GITHUB_BASE_REF prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} # Specific values - uses: rlespinasse/slugify-value@v1.2.1 with: key: GITHUB_EVENT_REF value: ${{ github.event.ref }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} # Calculated values - id: get-github-ref-name run: echo "::set-output name=github-ref-name::$(echo "${{ github.head_ref || github.ref }}" | cut -d/ -f3)" shell: bash - uses: rlespinasse/slugify-value@v1.2.1 with: key: GITHUB_REF_NAME value: ${{ steps.get-github-ref-name.outputs.github-ref-name }} prefix: ${{ inputs.prefix }} slug-maxlength: ${{ inputs.slug-maxlength }} - id: get-github-repository-owner-part run: echo "::set-output name=github-repository-owner-part::$(echo $GITHUB_REPOSITORY | cut -d/ -f1)" shell: bash - uses: rlespinasse/slugify-value@v1.2.1 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: echo "::set-output name=github-repository-name-part::$(echo $GITHUB_REPOSITORY | cut -d/ -f2)" shell: bash - uses: rlespinasse/slugify-value@v1.2.1 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 }} # Short - uses: rlespinasse/shortify-git-revision@v1.4.0 with: name: GITHUB_SHA short-on-error: true length: ${{ steps.prefligth.outputs.PREFLIGHT_SHORT_LENGTH }} prefix: ${{ inputs.prefix }} - uses: rlespinasse/shortify-git-revision@v1.4.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 }}