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
on: [push]
jobs:
slugify:
runs-on: ubuntu-latest
slugify-on-os:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -21,6 +25,7 @@ jobs:
[[ "${{ env.KEY_TEST_SLUG_CS }}" == "Key_Test.values" ]]
[[ "${{ env.KEY_TEST_SLUG_URL }}" == "key_test-values" ]]
[[ "${{ env.KEY_TEST_SLUG_URL_CS }}" == "Key_Test-values" ]]
shell: bash
# Test 2
- 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_URL }}" == "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
- name: Release this GitHub Action
uses: rlespinasse/release-that@v1.x

View File

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

View File

@@ -1,18 +1,26 @@
#!/usr/bin/env bash
KEY=${INPUT_KEY^^}
CS_VALUE=${INPUT_VALUE:-${!INPUT_KEY}}
VALUE=${CS_VALUE,,}
if [[ "$OSTYPE" == "darwin"* ]]; then
# On MacOS,
# 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() {
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
}
slug_url() {
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
}