ci: prepare the v5.x branch #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "[v5] Test and Release" | |
on: [push, pull_request] | |
jobs: | |
display: | |
name: "Display produced variables" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Load using v5.x | |
uses: ./ | |
- name: Partial variables | |
run: | | |
echo "repository owner : ${{ env.GITHUB_REPOSITORY_OWNER_PART }}" | |
echo "repository name : ${{ env.GITHUB_REPOSITORY_NAME_PART }}" | |
shell: bash | |
- name: Slug variables | |
run: | | |
echo "repository : ${{ env.GITHUB_REPOSITORY_SLUG }}" | |
echo "repository owner : ${{ env.GITHUB_REPOSITORY_OWNER_PART_SLUG }}" | |
echo "repository name : ${{ env.GITHUB_REPOSITORY_NAME_PART_SLUG }}" | |
echo "ref : ${{ env.GITHUB_REF_SLUG }}" | |
echo "head ref : ${{ env.GITHUB_HEAD_REF_SLUG }}" | |
echo "base ref : ${{ env.GITHUB_BASE_REF_SLUG }}" | |
echo "event ref : ${{ env.GITHUB_EVENT_REF_SLUG }}" | |
shell: bash | |
- name: Slug variables (Case Sensitive) | |
run: | | |
echo "repository : ${{ env.GITHUB_REPOSITORY_SLUG_CS }}" | |
echo "repository owner : ${{ env.GITHUB_REPOSITORY_OWNER_PART_SLUG_CS }}" | |
echo "repository name : ${{ env.GITHUB_REPOSITORY_NAME_PART_SLUG_CS }}" | |
echo "ref : ${{ env.GITHUB_REF_SLUG_CS }}" | |
echo "head ref : ${{ env.GITHUB_HEAD_REF_SLUG_CS }}" | |
echo "base ref : ${{ env.GITHUB_BASE_REF_SLUG_CS }}" | |
echo "event ref : ${{ env.GITHUB_EVENT_REF_SLUG_CS }}" | |
shell: bash | |
- name: Slug URL variables | |
run: | | |
echo "repository : ${{ env.GITHUB_REPOSITORY_SLUG_URL }}" | |
echo "repository owner : ${{ env.GITHUB_REPOSITORY_OWNER_PART_SLUG_URL }}" | |
echo "repository name : ${{ env.GITHUB_REPOSITORY_NAME_PART_SLUG_URL }}" | |
echo "ref : ${{ env.GITHUB_REF_SLUG_URL }}" | |
echo "head ref : ${{ env.GITHUB_HEAD_REF_SLUG_URL }}" | |
echo "base ref : ${{ env.GITHUB_BASE_REF_SLUG_URL }}" | |
echo "event ref : ${{ env.GITHUB_EVENT_REF_SLUG_URL }}" | |
shell: bash | |
- name: Slug URL variables (Case Sensitive) | |
run: | | |
echo "repository : ${{ env.GITHUB_REPOSITORY_SLUG_URL_CS }}" | |
echo "repository owner : ${{ env.GITHUB_REPOSITORY_OWNER_PART_SLUG_URL_CS }}" | |
echo "repository name : ${{ env.GITHUB_REPOSITORY_NAME_PART_SLUG_URL_CS }}" | |
echo "ref : ${{ env.GITHUB_REF_SLUG_URL_CS }}" | |
echo "head ref : ${{ env.GITHUB_HEAD_REF_SLUG_URL_CS }}" | |
echo "base ref : ${{ env.GITHUB_BASE_REF_SLUG_URL_CS }}" | |
echo "event ref : ${{ env.GITHUB_EVENT_REF_SLUG_URL_CS }}" | |
shell: bash | |
- name: Ref Name | |
run: | | |
echo "raw : ${{ env.GITHUB_REF_NAME }}" | |
echo "slug : ${{ env.GITHUB_REF_NAME_SLUG }}" | |
echo "slug url : ${{ env.GITHUB_REF_NAME_SLUG_URL }}" | |
echo "slug (Case Sensitive) : ${{ env.GITHUB_REF_NAME_SLUG_CS }}" | |
echo "slug url (Case Sensitive) : ${{ env.GITHUB_REF_NAME_SLUG_URL_CS }}" | |
shell: bash | |
- name: Short SHA variables | |
run: | | |
echo "sha : ${{ env.GITHUB_SHA_SHORT }}" | |
echo "pull request sha : ${{ env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA_SHORT }}" | |
shell: bash | |
display-without-checkout: | |
name: "Display produced variables (without checkout)" | |
needs: | |
- display | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: this-action | |
ref: ${{ github.ref }} | |
- name: Load using v5.x | |
uses: ./this-action | |
- name: Short SHA variables | |
run: | | |
echo "sha : ${{ env.GITHUB_SHA_SHORT }}" | |
echo "pull request sha : ${{ env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA_SHORT }}" | |
shell: bash | |
input-short-length: | |
name: "Input 'short-length'" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Test 1 | |
- name: Using correct short length | |
uses: ./ | |
with: | |
prefix: "CSL_" | |
short-length: 4 | |
- name: Using correct length // Validate that all short variables lengths are equals to short-length | |
run: | | |
env | grep "CSL_" | grep "_SHORT" | cut -d"=" -f2 | while read -r value; do [ "$(echo "$value" | wc -m)" -le 5 ] ; done | |
shell: bash | |
# Test 2 | |
- name: Using wrong short length | |
id: using-wrong-short-length | |
uses: ./ | |
with: | |
prefix: "WSL_" | |
short-length: "wrong" | |
continue-on-error: true | |
- name: Using wrong short length // Validate that the action end with an error | |
run: | | |
[[ "$(env | grep "WSL_" | grep "_SHORT" | wc -l)" -eq 0 ]] | |
[[ "${{ steps.using-wrong-short-length.outcome }}" == "failure" ]] | |
[[ "${{ steps.using-wrong-short-length.conclusion }}" == "success" ]] | |
shell: bash | |
input-short-length-without-checkout: | |
name: "Input 'short-length' (without checkout)" | |
needs: | |
- input-short-length | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: this-action | |
ref: ${{ github.ref }} | |
# Test 1 | |
- name: Using correct short length | |
uses: ./this-action | |
with: | |
prefix: "CSL_" | |
short-length: 4 | |
- name: Using correct length // Validate that all short variables lengths are equals to short-length | |
run: | | |
env | grep "CSL_" | grep "_SHORT" | cut -d"=" -f2 | while read -r value; do [ "$(echo "$value" | wc -m)" -le 5 ] ; done | |
shell: bash | |
# Test 2 | |
- name: Using empty short length | |
id: using-empty-short-length | |
uses: ./this-action | |
with: | |
prefix: "ESL_" | |
continue-on-error: true | |
- name: Using empty short length // Validate that the action don't end with an error | |
run: | | |
[[ "$(env | grep "ESL_" | grep "_SHORT" | wc -l)" -gt 0 ]] | |
[[ "${{ steps.using-empty-short-length.outcome }}" == "success" ]] | |
[[ "${{ steps.using-empty-short-length.conclusion }}" == "success" ]] | |
shell: bash | |
# Test 3 | |
- name: Using wrong short length | |
id: using-wrong-short-length | |
uses: ./this-action | |
with: | |
prefix: "WSL_" | |
short-length: "wrong" | |
continue-on-error: true | |
- name: Using wrong short length // Validate that the action end with an error | |
run: | | |
[[ "$(env | grep "WSL_" | grep "_SHORT" | wc -l)" -eq 0 ]] | |
[[ "${{ steps.using-wrong-short-length.outcome }}" == "failure" ]] | |
[[ "${{ steps.using-wrong-short-length.conclusion }}" == "success" ]] | |
shell: bash | |
input-slug-maxlength: | |
name: "Input 'slug-maxlength'" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Test 1 | |
- name: Using correct slug max length | |
uses: ./ | |
with: | |
prefix: "CML_" | |
slug-maxlength: 1 | |
- name: Using correct max length // Validate that all slug variables lengths are equals or under the slug-maxlength | |
run: | | |
env | grep "CML_" | grep "_SLUG" | cut -d"=" -f2 | while read -r value; do [ "$(echo "$value" | wc -m)" -le 2 ] ; done | |
shell: bash | |
# Test 2 | |
- name: Using wrong slug max length | |
id: using-wrong-slug-max-length | |
uses: ./ | |
with: | |
prefix: "WML_" | |
slug-maxlength: "wrong" | |
continue-on-error: true | |
- name: Using wrong slug max length // Validate that the action end with an error | |
run: | | |
[[ "$(env | grep "WML_" | grep "_SLUG" | wc -l)" -eq 0 ]] | |
[[ "${{ steps.using-wrong-slug-max-length.outcome }}" == "failure" ]] | |
[[ "${{ steps.using-wrong-slug-max-length.conclusion }}" == "success" ]] | |
shell: bash | |
# Test 3 | |
- name: Using empty slug max length | |
id: using-empty-slug-max-length | |
uses: ./ | |
with: | |
prefix: "EML_" | |
slug-maxlength: "" | |
continue-on-error: true | |
- name: Using empty slug max length // Validate that the action end with an error | |
run: | | |
[[ "$(env | grep "EML_" | grep "_SLUG" | wc -l)" -eq 0 ]] | |
[[ "${{ steps.using-empty-slug-max-length.outcome }}" == "failure" ]] | |
[[ "${{ steps.using-empty-slug-max-length.conclusion }}" == "success" ]] | |
shell: bash | |
# Test 4 | |
- name: Using no limit on slug max length | |
id: using-nolimit-slug-max-length | |
uses: ./ | |
with: | |
prefix: "NLML_" | |
slug-maxlength: "nolimit" | |
- name: Using no limit on slug max length // Validate that the action end with an error | |
run: | | |
[[ "$(env | grep "NLML_" | grep "_SLUG" | wc -l)" -gt 0 ]] | |
[[ "${{ steps.using-nolimit-slug-max-length.outcome }}" == "success" ]] | |
[[ "${{ steps.using-nolimit-slug-max-length.conclusion }}" == "success" ]] | |
shell: bash | |
release: | |
runs-on: ubuntu-latest | |
concurrency: | |
group: release-${{ github.ref }}-${{ github.event_name }} | |
needs: | |
- display-without-checkout | |
- input-short-length-without-checkout | |
- input-slug-maxlength | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Release this GitHub Action | |
uses: rlespinasse/release-that@v1 | |
with: | |
github-token: ${{ secrets.GH_TOKEN }} |