3 Commits

Author SHA1 Message Date
Romain Lespinasse
1300b1ecaf fix(slug_url): replace underscore
To be compliant with Hostname syntax, we need to remove underscores from the slug value.

Since the hostname is part of the URL, we update the SLUG_URL values instead of creating a new SLUG_HOSTNAME (for example).
2022-04-08 20:38:08 +02:00
Gaetan BOGAERT
ce66c2e7e3 fix: do not replace group of dashes with a single dash 2022-03-22 15:58:25 +01:00
Romain Lespinasse
ca7a5a0fdd ci: enable build on fork pull request 2022-03-22 13:56:08 +01:00
3 changed files with 15 additions and 11 deletions

View File

@@ -1,5 +1,9 @@
name: Slugify Value
on: [push]
on:
push:
branches:
- v1.x
pull_request:
jobs:
os-testing:
strategy:
@@ -23,8 +27,8 @@ jobs:
[[ "${{ env.KEY_TEST }}" == "Key_Test.values" ]]
[[ "${{ env.KEY_TEST_SLUG }}" == "key_test.values" ]]
[[ "${{ 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" ]]
[[ "${{ env.KEY_TEST_SLUG_URL }}" == "key-test-values" ]]
[[ "${{ env.KEY_TEST_SLUG_URL_CS }}" == "Key-Test-values" ]]
shell: bash
# Test 2
@@ -55,8 +59,8 @@ jobs:
[[ "${{ env.KEY_VALUE_TEST }}" == "refs/pulls/feat/-----Some----Changes_to.be------" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG }}" == "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_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
# Test 4
@@ -87,8 +91,8 @@ jobs:
[[ "${{ env.KEY_VALUE_TEST }}" == "refs/pulls/feat/-----Some----Changes_to.be-----Some----Changes_to.be-----Some----Changes_to.be-----Some----Changes_to.be------" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG }}" == "feat-some-changes_to.be-some-changes_to.be-some-changes_to.be-some-changes_to.be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_CS }}" == "feat-Some-Changes_to.be-Some-Changes_to.be-Some-Changes_to.be-Some-Changes_to.be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL }}" == "feat-some-changes_to-be-some-changes_to-be-some-changes_to-be-some-changes_to-be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL_CS }}" == "feat-Some-Changes_to-be-Some-Changes_to-be-Some-Changes_to-be-Some-Changes_to-be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL }}" == "feat-some-changes-to-be-some-changes-to-be-some-changes-to-be-some-changes-to-be" ]]
[[ "${{ env.KEY_VALUE_TEST_SLUG_URL_CS }}" == "feat-Some-Changes-to-be-Some-Changes-to-be-Some-Changes-to-be-Some-Changes-to-be" ]]
shell: bash
# Test 6

View File

@@ -17,7 +17,7 @@ Produce some `slug`-ed environment variables based on the input one.
- `<env name>_SLUG_URL` (or `<env name>_SLUG_URL_CS`)
- like `<env name>_SLUG` (or `<env name>_SLUG_CS`) with the `.` character also replaced by `-`
- like `<env name>_SLUG` (or `<env name>_SLUG_CS`) with the `.`, and `_` characters also replaced by `-`
## Usage
@@ -81,7 +81,7 @@ Produce some `slug`-ed environment variables based on the input one.
Will produce SLUG variables with a 80-char length
- Slugify a value without
- Slugify a value without length limit
```yaml
- uses: rlespinasse/slugify-value@v1.x

View File

@@ -28,12 +28,12 @@ else
fi
slug() {
output=$(sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' <<<"$1")
output=$(sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9._-]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' <<<"$1")
reduce "$output"
}
slug_url() {
output=$(sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9_]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' <<<"$1")
output=$(sed -E 's#refs/[^\/]*/##;s/[^a-zA-Z0-9-]+/-/g;s/-+/-/g;s/^-*//;s/-*$//' <<<"$1")
reduce "$output"
}