Files
slugify-value/.github/workflows/slugify-value.yaml
2022-06-15 15:48:10 +02:00

180 lines
8.2 KiB
YAML

name: Slugify Value
on:
push:
branches:
- v1.x
pull_request:
jobs:
os-testing:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
# Test 1
- name: Slugify key only
id: slugify-key-only
uses: ./
with:
key: KEY_ONLY
env:
KEY_ONLY: "refs/head/$-Key_Only.test--value-%-+"
- name: Validate // Slugify key only
run: |
[[ "${{ env.KEY_ONLY }}" == "refs/head/$-Key_Only.test--value-%-+" ]]
[[ "${{ env.KEY_ONLY_SLUG }}" == "key_only.test--value" ]]
[[ "${{ env.KEY_ONLY_SLUG_CS }}" == "Key_Only.test--value" ]]
[[ "${{ env.KEY_ONLY_SLUG_URL }}" == "key-only-test--value" ]]
[[ "${{ env.KEY_ONLY_SLUG_URL_CS }}" == "Key-Only-test--value" ]]
[[ "${{ env.KEY_ONLY }}" == "${{ steps.slugify-key-only.outputs.value }}" ]]
[[ "${{ env.KEY_ONLY_SLUG }}" == "${{ steps.slugify-key-only.outputs.slug }}" ]]
[[ "${{ env.KEY_ONLY_SLUG_CS }}" == "${{ steps.slugify-key-only.outputs.slug-cs }}" ]]
[[ "${{ env.KEY_ONLY_SLUG_URL }}" == "${{ steps.slugify-key-only.outputs.slug-url }}" ]]
[[ "${{ env.KEY_ONLY_SLUG_URL_CS }}" == "${{ steps.slugify-key-only.outputs.slug-url-cs }}" ]]
shell: bash
# Test 2
- name: Slugify key only with prefix
uses: ./
with:
key: KEY_ONLY_WITH_PREFIX
prefix: CI_
env:
KEY_ONLY_WITH_PREFIX: ${{ env.KEY_ONLY }}
- name: Validate // Slugify key only with prefix
run: |
[[ "${{ env.CI_KEY_ONLY_WITH_PREFIX }}" == "${{ env.KEY_ONLY }}" ]]
[[ "${{ env.CI_KEY_ONLY_WITH_PREFIX_SLUG }}" == "${{ env.KEY_ONLY_SLUG }}" ]]
[[ "${{ env.CI_KEY_ONLY_WITH_PREFIX_SLUG_CS }}" == "${{ env.KEY_ONLY_SLUG_CS }}" ]]
[[ "${{ env.CI_KEY_ONLY_WITH_PREFIX_SLUG_URL }}" == "${{ env.KEY_ONLY_SLUG_URL }}" ]]
[[ "${{ env.CI_KEY_ONLY_WITH_PREFIX_SLUG_URL_CS }}" == "${{ env.KEY_ONLY_SLUG_URL_CS }}" ]]
shell: bash
# Test 3
- name: Slugify key/value
uses: ./
with:
key: KEY_VALUE
value: "Never gonna give you up Never gonna let you down"
- name: Validate // Slugify key/value
run: |
[[ "${{ env.KEY_VALUE }}" == "Never gonna give you up Never gonna let you down" ]]
[[ "${{ env.KEY_VALUE_SLUG }}" == "never-gonna-give-you-up-never-gonna-let-you-down" ]]
[[ "${{ env.KEY_VALUE_SLUG_CS }}" == "Never-gonna-give-you-up-Never-gonna-let-you-down" ]]
[[ "${{ env.KEY_VALUE_SLUG_URL }}" == "never-gonna-give-you-up-never-gonna-let-you-down" ]]
[[ "${{ env.KEY_VALUE_SLUG_URL_CS }}" == "Never-gonna-give-you-up-Never-gonna-let-you-down" ]]
shell: bash
# Test 4
- name: Slugify with another max length
uses: ./
with:
key: ANOTHER_MAX_LENGTH
value: "Never gonna give you up Never gonna let you down"
slug-maxlength: 24
- name: Validate // Slugify with another max length
run: |
[[ "${{ env.ANOTHER_MAX_LENGTH }}" == "Never gonna give you up Never gonna let you down" ]]
[[ "${{ env.ANOTHER_MAX_LENGTH_SLUG }}" == "never-gonna-give-you-up" ]]
[[ "${{ env.ANOTHER_MAX_LENGTH_SLUG_CS }}" == "Never-gonna-give-you-up" ]]
[[ "${{ env.ANOTHER_MAX_LENGTH_SLUG_URL }}" == "never-gonna-give-you-up" ]]
[[ "${{ env.ANOTHER_MAX_LENGTH_SLUG_URL_CS }}" == "Never-gonna-give-you-up" ]]
shell: bash
# Test 5
- name: Slugify with no limit on max length
uses: ./
with:
key: NO_MAX_LENGTH
value: "Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you"
slug-maxlength: "nolimit"
- name: Validate // Slugify with no limit on max length
run: |
[[ "${{ env.NO_MAX_LENGTH }}" == "Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you" ]]
[[ "${{ env.NO_MAX_LENGTH_SLUG }}" == "never-gonna-give-you-up-never-gonna-let-you-down-never-gonna-run-around-and-desert-you-never-gonna-make-you-cry-never-gonna-say-goodbye-never-gonna-tell-a-lie-and-hurt-you" ]]
[[ "${{ env.NO_MAX_LENGTH_SLUG_CS }}" == "Never-gonna-give-you-up-Never-gonna-let-you-down-Never-gonna-run-around-and-desert-you-Never-gonna-make-you-cry-Never-gonna-say-goodbye-Never-gonna-tell-a-lie-and-hurt-you" ]]
[[ "${{ env.NO_MAX_LENGTH_SLUG_URL }}" == "never-gonna-give-you-up-never-gonna-let-you-down-never-gonna-run-around-and-desert-you-never-gonna-make-you-cry-never-gonna-say-goodbye-never-gonna-tell-a-lie-and-hurt-you" ]]
[[ "${{ env.NO_MAX_LENGTH_SLUG_URL_CS }}" == "Never-gonna-give-you-up-Never-gonna-let-you-down-Never-gonna-run-around-and-desert-you-Never-gonna-make-you-cry-Never-gonna-say-goodbye-Never-gonna-tell-a-lie-and-hurt-you" ]]
shell: bash
# Test 6
- name: Slugify with empty max length
id: slugify-with-empty-max-length
uses: ./
with:
key: EMPTY_MAXLENGTH
value: some_value
slug-maxlength: ""
continue-on-error: true
- name: Validate // Slugify with empty max length
run: |
[[ -z "${{ env.EMPTY_MAXLENGTH }}" ]]
[[ -z "${{ env.EMPTY_MAXLENGTH_SLUG }}" ]]
[[ -z "${{ env.EMPTY_MAXLENGTH_SLUG_CS }}" ]]
[[ -z "${{ env.EMPTY_MAXLENGTH_SLUG_URL }}" ]]
[[ -z "${{ env.EMPTY_MAXLENGTH_SLUG_URL_CS }}" ]]
[[ "${{ steps.slugify-with-empty-max-length.outcome }}" == "failure" ]]
[[ "${{ steps.slugify-with-empty-max-length.conclusion }}" == "success" ]]
shell: bash
# Test 7
- name: Slugify with wrong max length
id: slugify-with-wrong-max-length
uses: ./
with:
key: WRONG_MAXLENGTH
value: some_value
slug-maxlength: "wrong"
continue-on-error: true
- name: Validate // Slugify with wrong max length
run: |
[[ -z "${{ env.WRONG_MAXLENGTH }}" ]]
[[ -z "${{ env.WRONG_MAXLENGTH_SLUG }}" ]]
[[ -z "${{ env.WRONG_MAXLENGTH_SLUG_CS }}" ]]
[[ -z "${{ env.WRONG_MAXLENGTH_SLUG_URL }}" ]]
[[ -z "${{ env.WRONG_MAXLENGTH_SLUG_URL_CS }}" ]]
[[ "${{ steps.slugify-with-wrong-max-length.outcome }}" == "failure" ]]
[[ "${{ steps.slugify-with-wrong-max-length.conclusion }}" == "success" ]]
shell: bash
# Test 8
- name: Slugify key without env publication
id: slugify-key-without-env-publication
uses: ./
with:
key: KEY_WITHOUT_ENV_PUBLICATION
publish-env: false
env:
KEY_WITHOUT_ENV_PUBLICATION: "Never gonna give you up"
- name: Validate // Slugify key without env publication
run: |
[[ -z "${{ env.KEY_WITHOUT_ENV_PUBLICATION }}" ]]
[[ -z "${{ env.KEY_WITHOUT_ENV_PUBLICATION_SLUG }}" ]]
[[ -z "${{ env.KEY_WITHOUT_ENV_PUBLICATION_SLUG_CS }}" ]]
[[ -z "${{ env.KEY_WITHOUT_ENV_PUBLICATION_SLUG_URL }}" ]]
[[ -z "${{ env.KEY_WITHOUT_ENV_PUBLICATION_SLUG_URL_CS }}" ]]
[[ "${{ steps.slugify-key-without-env-publication.outputs.value }}" == "Never gonna give you up" ]]
[[ "${{ steps.slugify-key-without-env-publication.outputs.slug }}" == "never-gonna-give-you-up" ]]
[[ "${{ steps.slugify-key-without-env-publication.outputs.slug-cs }}" == "Never-gonna-give-you-up" ]]
[[ "${{ steps.slugify-key-without-env-publication.outputs.slug-url }}" == "never-gonna-give-you-up" ]]
[[ "${{ steps.slugify-key-without-env-publication.outputs.slug-url-cs }}" == "Never-gonna-give-you-up" ]]
shell: bash
release:
runs-on: ubuntu-latest
concurrency:
group: release-${{ github.ref }}
needs:
- os-testing
steps:
- name: Checkout
uses: actions/checkout@v3
# Release
- name: Release this GitHub Action
uses: rlespinasse/release-that@v1