From 63a442f83be202b9931c2d537de13388aa04d7be Mon Sep 17 00:00:00 2001 From: Romain Lespinasse Date: Fri, 1 Nov 2024 10:11:33 +0100 Subject: [PATCH] build: prepare v5.x branch (#148) Signed-off-by: Romain Lespinasse --- .github/workflows/linter.yml | 10 +- ...d-release.yml => v5-tests-and-release.yml} | 100 +++++++++--------- README.md | 38 +++---- SECURITY.md | 3 +- examples/linux-usage.yml | 4 +- examples/macos-usage.yml | 4 +- examples/url-use.yml | 8 +- examples/windows-usage.yml | 4 +- package.json | 1 - 9 files changed, 88 insertions(+), 84 deletions(-) rename .github/workflows/{v4-tests-and-release.yml => v5-tests-and-release.yml} (88%) delete mode 100644 package.json diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 19ebb1a..017f2a1 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -3,6 +3,8 @@ name: Lint Code Base on: pull_request +permissions: read-all + jobs: build: name: Lint Code Base @@ -15,13 +17,15 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 with: - # Full git history is needed to get a proper list of changed files within `super-linter` + # Full git history is needed to get a proper + # list of changed files within `super-linter` fetch-depth: 0 - name: Lint Code Base uses: github/super-linter@v7 env: VALIDATE_ALL_CODEBASE: false - DEFAULT_BRANCH: v4.x + VALIDATE_JSON_PRETTIER: false + VALIDATE_MARKDOWN_PRETTIER: false + DEFAULT_BRANCH: v5.x GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - \ No newline at end of file diff --git a/.github/workflows/v4-tests-and-release.yml b/.github/workflows/v5-tests-and-release.yml similarity index 88% rename from .github/workflows/v4-tests-and-release.yml rename to .github/workflows/v5-tests-and-release.yml index c469686..167128b 100644 --- a/.github/workflows/v4-tests-and-release.yml +++ b/.github/workflows/v5-tests-and-release.yml @@ -1,8 +1,9 @@ -name: '[v4] Test and Release' +name: "[v5] Test and Release" on: [push, pull_request] +permissions: read-all jobs: - check-v3compatibility: - name: 'Check v3 compatibility' + check-v4-compatibility: + name: "Check v4 compatibility" strategy: fail-fast: false matrix: @@ -12,14 +13,13 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Load using v4.x with prefix + - name: Load this action from HEAD uses: ./ + + - name: Load using v4 + uses: rlespinasse/github-slug-action@v4 with: prefix: V4_ - short-length: 8 - - - name: Load using v3.x - uses: rlespinasse/github-slug-action@v3.x - name: Validate // Partial variables run: | @@ -83,10 +83,10 @@ jobs: [[ "${{ env.GITHUB_EVENT_PULL_REQUEST_HEAD_SHA_SHORT }}" == "${{ env.V4_GITHUB_EVENT_PULL_REQUEST_HEAD_SHA_SHORT }}" ]] shell: bash - check-v3compatibility-without-checkout: - name: 'Check v3 compatibility (without checkout)' + check-v4-compatibility-without-checkout: + name: "Check v4 compatibility (without checkout)" needs: - - check-v3compatibility + - check-v4-compatibility strategy: fail-fast: false matrix: @@ -99,14 +99,13 @@ jobs: path: this-action ref: ${{ github.ref }} - - name: Load using v4.x with prefix + - name: Load this action from HEAD uses: ./this-action + + - name: Load using v4 + uses: rlespinasse/github-slug-action@v4 with: prefix: V4_ - short-length: 8 - - - name: Load using v3.x - uses: rlespinasse/github-slug-action@v3.x - name: Validate // Short SHA variables run: | @@ -115,7 +114,7 @@ jobs: shell: bash display: - name: 'Display produced variables' + name: "Display produced variables" strategy: fail-fast: false matrix: @@ -125,7 +124,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Load using v4.x + - name: Load this action from HEAD uses: ./ - name: Partial variables @@ -144,6 +143,7 @@ jobs: 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 }}" @@ -154,6 +154,7 @@ jobs: 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 }}" @@ -164,6 +165,7 @@ jobs: 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 }}" @@ -191,7 +193,7 @@ jobs: shell: bash display-without-checkout: - name: 'Display produced variables (without checkout)' + name: "Display produced variables (without checkout)" needs: - display strategy: @@ -206,14 +208,8 @@ jobs: path: this-action ref: ${{ github.ref }} - - name: Load using v4.x with prefix + - name: Load this action from HEAD uses: ./this-action - with: - prefix: V4_ - short-length: 8 - - - name: Load using v3.x - uses: rlespinasse/github-slug-action@v3.x - name: Short SHA variables run: | @@ -236,11 +232,11 @@ jobs: - name: Using correct short length uses: ./ with: - prefix: 'CSL_' + 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 + env | grep "CSL_" | grep "_SHORT" | cut -d"=" -f2 | while read -r value; do [ "${#value}" -le 5 ] ; done shell: bash # Test 2 @@ -248,12 +244,12 @@ jobs: id: using-wrong-short-length uses: ./ with: - prefix: 'WSL_' - short-length: 'wrong' + 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 ]] + [[ "$(env | grep "WSL_" | grep "_SHORT" -c)" -eq 0 ]] [[ "${{ steps.using-wrong-short-length.outcome }}" == "failure" ]] [[ "${{ steps.using-wrong-short-length.conclusion }}" == "success" ]] shell: bash @@ -278,11 +274,11 @@ jobs: - name: Using correct short length uses: ./this-action with: - prefix: 'CSL_' + 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 + env | grep "CSL_" | grep "_SHORT" | cut -d"=" -f2 | while read -r value; do [ "${#value}" -le 5 ] ; done shell: bash # Test 2 @@ -290,11 +286,11 @@ jobs: id: using-empty-short-length uses: ./this-action with: - prefix: 'ESL_' + 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 ]] + [[ "$(env | grep "ESL_" | grep "_SHORT" -c)" -gt 0 ]] [[ "${{ steps.using-empty-short-length.outcome }}" == "success" ]] [[ "${{ steps.using-empty-short-length.conclusion }}" == "success" ]] shell: bash @@ -304,12 +300,12 @@ jobs: id: using-wrong-short-length uses: ./this-action with: - prefix: 'WSL_' - short-length: 'wrong' + 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 ]] + [[ "$(env | grep "WSL_" | grep "_SHORT" -c)" -eq 0 ]] [[ "${{ steps.using-wrong-short-length.outcome }}" == "failure" ]] [[ "${{ steps.using-wrong-short-length.conclusion }}" == "success" ]] shell: bash @@ -329,11 +325,11 @@ jobs: - name: Using correct slug max length uses: ./ with: - prefix: 'CML_' + 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 + env | grep "CML_" | grep "_SLUG" | cut -d"=" -f2 | while read -r value; do [ "${#value}" -le 2 ] ; done shell: bash # Test 2 @@ -341,12 +337,12 @@ jobs: id: using-wrong-slug-max-length uses: ./ with: - prefix: 'WML_' - slug-maxlength: 'wrong' + 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 ]] + [[ "$(env | grep "WML_" | grep "_SLUG" -c)" -eq 0 ]] [[ "${{ steps.using-wrong-slug-max-length.outcome }}" == "failure" ]] [[ "${{ steps.using-wrong-slug-max-length.conclusion }}" == "success" ]] shell: bash @@ -356,12 +352,12 @@ jobs: id: using-empty-slug-max-length uses: ./ with: - prefix: 'EML_' - slug-maxlength: '' + 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 ]] + [[ "$(env | grep "EML_" | grep "_SLUG" -c)" -eq 0 ]] [[ "${{ steps.using-empty-slug-max-length.outcome }}" == "failure" ]] [[ "${{ steps.using-empty-slug-max-length.conclusion }}" == "success" ]] shell: bash @@ -371,21 +367,25 @@ jobs: id: using-nolimit-slug-max-length uses: ./ with: - prefix: 'NLML_' - slug-maxlength: 'nolimit' + 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 ]] + [[ "$(env | grep "NLML_" | grep "_SLUG" -c)" -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 + permissions: + contents: write + issues: write + id-token: write + packages: write concurrency: group: release-${{ github.ref }}-${{ github.event_name }} needs: - - check-v3compatibility-without-checkout - display-without-checkout - input-short-length-without-checkout - input-slug-maxlength diff --git a/README.md b/README.md index d3c255a..44217db 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This GitHub Action will expose the slug/short values of [some GitHub environment - [The SHORT variables doesn't have the same lengths as before](#the-short-variables-doesnt-have-the-same-lengths-as-before) - [One of the environment variables doesn't work as intended](#one-of-the-environment-variables-doesnt-work-as-intended) - [Known environment variable conflicts](#known-environment-variable-conflicts) - - [GITHUB_REF_NAME](#github_ref_name) + - [GITHUB\_REF\_NAME](#github_ref_name) - [An action could not be found at the URI](#an-action-could-not-be-found-at-the-uri) - [Thanks for talking about us](#thanks-for-talking-about-us) @@ -37,7 +37,7 @@ This GitHub Action will expose the slug/short values of [some GitHub environment Others Slug-ish commands are available

-- `SLUG_URL` on a variable to have a `slug` variable compliant to be used in an URL +- `SLUG_URL` on a variable to have a `slug` variable compliant to be used in a URL - Like `SLUG` but `.`, and `_` are also replaced by `-` - `SHORT` on a variable will limit the string size to ~8 characters - Useful for _sha_ value @@ -56,7 +56,7 @@ Add this in your workflow ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 ```

@@ -67,7 +67,7 @@ Add this in your workflow ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 with: prefix: CI_ ``` @@ -76,7 +76,7 @@ Add this in your workflow ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 with: slug-maxlength: 80 # Use 'nolimit' to remove use of a max length (Default to 63) ``` @@ -85,12 +85,12 @@ Add this in your workflow ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 with: - short-length: 7 # By default it's up to git to decide, use 8 to have the v3.x behavior + short-length: 7 # By default it's up to Git to decide, use 8 to have the v3.x behavior ``` - **Warning**: If you leave it empty, you need to checkout the source first in order to let git decide the size by itself. + **Warning**: If you leave it empty, you need to checkout the source first in order to let Git decide the size by itself.

@@ -102,14 +102,14 @@ Check for more [examples][examples] (OS usage, URL use, ...) The short sha length is not the same as previous version. -- `v4` let git configuration decide of it (but you can override it), -- `v3` and before, it's always a length of 8 characters. +- Since `v4` let Git configuration decide of it (but you can override it), +- With `v3` and before, it's always a length of 8 characters. So to reproduce previous behavior, use ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 with: short-length: 8 # Same as v3 and before ``` @@ -172,7 +172,7 @@ So to reproduce previous behavior, use ### The SHORT variables doesn't have the same lengths as before -Since `v4`, it's git who manage the short variables by using [git rev-parse][git-revparse] behaviour. +Since `v4`, it's Git who manage the short variables by using [git rev-parse][git-revparse] behaviour. The length of a short sha depends of the size of our repository and can differ over time. To manage that moving length, you can use `short-length` input @@ -213,7 +213,7 @@ A possible workaround is to use `prefix` input ```yaml - name: Inject slug/short variables - uses: rlespinasse/github-slug-action@v4 + uses: rlespinasse/github-slug-action@v5 with: prefix: CI_ ``` @@ -235,7 +235,7 @@ If the `GIT_REFERENCE` value is - `v4.x` or after, the branch don't exists anymore following the [end-of-life for a branch](SECURITY.md#end-of-life-of-a-branch) security process. - `master`, the branch don't exists anymore, read more about it on the corresponding issue ([EOL issue][issue-15]) -Please, use the current major tag `v4` or a version tag (see [releases pages][releases]) in order to fix your workflow. +Please, use the current major tag `v5` or a version tag (see [releases pages][releases]) in order to fix your workflow. ## Thanks for talking about us @@ -243,20 +243,20 @@ In English :gb: - [Action spotlight by Michael Heap][article-2] - [Serverless Deploy Previews on GitHub Actions][article-3] -- [Let's Build a Continuous Delivery and Branching Process with Github Actions, Vercel and Heroku][article-4] +- [Let's Build a Continuous Delivery and Branching Process with GitHub Actions, Vercel and Heroku][article-4] -In French :fr: +In French :fr: - [Mettre en place une CI/CD Angular avec GitHub Actions & Netlify][article-1] -- [Github Actions : enfin des pipelines accessibles aux développeurs][talk-1] +- [GitHub Actions : enfin des pipelines accessibles aux développeurs][talk-1] In Chinese :cn: -- [利用github-slug-action暴漏Github Action上下文中的关键变量][article-5] +- [利用github-slug-action暴漏GitHub Action上下文中的关键变量][article-5] > The next one is you. _Don't hesitate to add youself to one of these lists._ -[examples]: https://github.com/rlespinasse/github-slug-action/tree/v4.x/examples +[examples]: https://github.com/rlespinasse/github-slug-action/tree/v5.x/examples [custom-variable]: https://github.com/rlespinasse/github-slug-action/issues/new?assignees=&labels=enhancement&template=feature_request.md&title= [releases]: https://github.com/rlespinasse/github-slug-action/releases [issue-15]: https://github.com/rlespinasse/github-slug-action/issues/15 diff --git a/SECURITY.md b/SECURITY.md index 9151f72..1aed27a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,8 @@ | Version | Supported | End of Support | Branch | Specific Tags | | ------- | ------------------ | -------------- | ------ | ------------- | -| 4.x | :white_check_mark: | | v4.x | v4 | +| 5.x | :white_check_mark: | | v5.x | v5 | +| 4.x | :white_check_mark: | 2025-01-31 | v4.x | v4 | | 3.x | :x: | 2024-01-31 | | v3.x, v3 | | 2.x | :x: | 2021-04-05 | | v2.x, 2.2.0 | | 1.x | :x: | 2021-04-05 | | v1.1.x, 1.2.0 | diff --git a/examples/linux-usage.yml b/examples/linux-usage.yml index 1275b4b..60d0ede 100644 --- a/examples/linux-usage.yml +++ b/examples/linux-usage.yml @@ -6,8 +6,8 @@ jobs: usage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: rlespinasse/github-slug-action@v4 + - uses: actions/checkout@v4 + - uses: rlespinasse/github-slug-action@v5 - name: Output run: | echo "Partial variables" diff --git a/examples/macos-usage.yml b/examples/macos-usage.yml index 43e777f..2b7c4f1 100644 --- a/examples/macos-usage.yml +++ b/examples/macos-usage.yml @@ -6,8 +6,8 @@ jobs: usage: runs-on: macos-latest steps: - - uses: actions/checkout@v2 - - uses: rlespinasse/github-slug-action@v4 + - uses: actions/checkout@v4 + - uses: rlespinasse/github-slug-action@v5 - name: Output run: | echo "Partial variables" diff --git a/examples/url-use.yml b/examples/url-use.yml index d07ec18..084bc0a 100644 --- a/examples/url-use.yml +++ b/examples/url-use.yml @@ -6,15 +6,15 @@ jobs: as_subdomain: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: rlespinasse/github-slug-action@v4 + - uses: actions/checkout@v4 + - uses: rlespinasse/github-slug-action@v5 - run: | ./deploy-application.sh --url "https://${{ env.GITHUB_REF_SLUG_URL }}.staging.app.example.com" as_resource_path: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: rlespinasse/github-slug-action@v4 + - uses: actions/checkout@v4 + - uses: rlespinasse/github-slug-action@v5 - run: | ./deploy-application.sh --url "https://staging.app.example.com/${{ env.GITHUB_REF_SLUG_URL }}" diff --git a/examples/windows-usage.yml b/examples/windows-usage.yml index 7685b9d..c299153 100644 --- a/examples/windows-usage.yml +++ b/examples/windows-usage.yml @@ -6,8 +6,8 @@ jobs: usage: runs-on: windows-latest steps: - - uses: actions/checkout@v2 - - uses: rlespinasse/github-slug-action@v4 + - uses: actions/checkout@v4 + - uses: rlespinasse/github-slug-action@v5 - name: Output run: | echo "Partial variables" diff --git a/package.json b/package.json deleted file mode 100644 index 8b13789..0000000 --- a/package.json +++ /dev/null @@ -1 +0,0 @@ -