4 Commits

Author SHA1 Message Date
rlespinasse
e299e5b7e9 fix: support macos on shell script 2021-10-13 14:06:58 +02:00
rlespinasse
a5345bd066 fix: use windows-compatible env var for action path 2021-10-13 14:06:58 +02:00
rlespinasse
fbfaeca16e test: check for each os 2021-10-13 14:06:58 +02:00
Romain Lespinasse
017eec94a5 build: make action compatible with marketplace publication 2021-10-12 13:16:41 +02:00
3 changed files with 31 additions and 9 deletions

View File

@@ -1,8 +1,12 @@
name: Slugify testing name: Slugify testing
on: [push] on: [push]
jobs: jobs:
slugify: slugify-on-os:
runs-on: ubuntu-latest strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -21,6 +25,7 @@ jobs:
[[ "${{ env.KEY_TEST_SLUG_CS }}" == "Key_Test.values" ]] [[ "${{ env.KEY_TEST_SLUG_CS }}" == "Key_Test.values" ]]
[[ "${{ env.KEY_TEST_SLUG_URL }}" == "key_test-values" ]] [[ "${{ env.KEY_TEST_SLUG_URL }}" == "key_test-values" ]]
[[ "${{ env.KEY_TEST_SLUG_URL_CS }}" == "Key_Test-values" ]] [[ "${{ env.KEY_TEST_SLUG_URL_CS }}" == "Key_Test-values" ]]
shell: bash
# Test 2 # Test 2
- name: Slugify key/value - name: Slugify key/value
@@ -35,7 +40,16 @@ jobs:
[[ "${{ env.KEY_VALUE_TEST_SLUG_CS }}" == "feat-Some-Changes_to.be" ]] [[ "${{ env.KEY_VALUE_TEST_SLUG_CS }}" == "feat-Some-Changes_to.be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL }}" == "feat-some-changes_to-be" ]] [[ "${{ env.KEY_VALUE_TEST_SLUG_URL }}" == "feat-some-changes_to-be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL_CS }}" == "feat-Some-Changes_to-be" ]] [[ "${{ env.KEY_VALUE_TEST_SLUG_URL_CS }}" == "feat-Some-Changes_to-be" ]]
shell: bash
slugify-release:
runs-on: ubuntu-latest
needs: slugify-on-os
steps:
- name: Checkout
uses: actions/checkout@v2
# Release # Release
- name: Release this GitHub Action - name: Release this GitHub Action
uses: rlespinasse/release-that@v1.x uses: rlespinasse/release-that@v1.x

View File

@@ -1,4 +1,4 @@
name: "Slugify" name: "Slugify Value"
description: "Github Action to slugify a value" description: "Github Action to slugify a value"
author: "Romain Lespinasse" author: "Romain Lespinasse"
inputs: inputs:
@@ -14,7 +14,7 @@ branding:
runs: runs:
using: "composite" using: "composite"
steps: steps:
- run: ${{ github.action_path }}/slugify.sh - run: $GITHUB_ACTION_PATH/slugify.sh
shell: bash shell: bash
env: env:
INPUT_KEY: ${{ inputs.key }} INPUT_KEY: ${{ inputs.key }}

View File

@@ -1,18 +1,26 @@
#!/usr/bin/env bash #!/usr/bin/env bash
KEY=${INPUT_KEY^^} if [[ "$OSTYPE" == "darwin"* ]]; then
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}} # On MacOS,
VALUE=${CS_VALUE,,} # bash don't support substitution, so we use 'tr'
KEY=$(echo "$INPUT_KEY" | tr '[:lower:]' '[:upper:]')
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
VALUE=$(echo "$CS_VALUE" | tr '[:upper:]' '[:lower:]')
else
KEY=${INPUT_KEY^^}
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
VALUE=${CS_VALUE,,}
fi
slug() { slug() {
echo "$1" | echo "$1" |
sed -r 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._]+/-/g;s/^-*//;s/-*$//' | sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' |
cut -c1-63 cut -c1-63
} }
slug_url() { slug_url() {
echo "$1" | echo "$1" |
sed -r 's#refs/[^\/]*/##;s/[^a-zA-Z0-9_]+/-/g;s/^-//;s/-$//' | sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9_]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' |
cut -c1-63 cut -c1-63
} }