From c85e02f06462a35f09abf725ef22b6b4b031ea2a Mon Sep 17 00:00:00 2001
From: Pierre Smeyers <pierre.smeyers@gmail.com>
Date: Sun, 14 Jan 2024 14:01:18 +0100
Subject: [PATCH] feat: migrate to GitLab CI/CD component
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

⚠ requires GitLab 16.6 or later
---
 README.md                    |  47 +++++++++++++++++++++++--------
 bumpversion.sh               |   4 +--
 kicker.json                  |   2 ++
 logo.png                     | Bin 19758 -> 15247 bytes
 templates/gitlab-ci-bash.yml |  53 +++++++++++++++++++++++++++++++----
 5 files changed, 87 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index 972363c..1ae3c61 100644
--- a/README.md
+++ b/README.md
@@ -4,13 +4,36 @@ This project implements a GitLab CI/CD template to test and analyse your shell c
 
 ## Usage
 
-In order to include this template in your project, add the following to your `.gitlab-ci.yml`:
+This template can be used both as a [CI/CD component](https://docs.gitlab.com/ee/ci/components/#use-a-component-in-a-cicd-configuration) 
+or using the legacy [`include:project`](https://docs.gitlab.com/ee/ci/yaml/index.html#includeproject) syntax.
+
+### Use as a CI/CD component
+
+Add the following to your `gitlab-ci.yml`:
 
 ```yaml
 include:
+  # 1: include the component
+  - component: gitlab.com/to-be-continuous/bash/gitlab-ci-bash@3.3.0
+    # 2: set/override component inputs
+    inputs:
+      bats-enabled: true # ⚠ this is only an example
+```
+
+### Use as a CI/CD template (legacy)
+
+Add the following to your `gitlab-ci.yml`:
+
+```yaml
+include:
+  # 1: include the template
   - project: 'to-be-continuous/bash'
     ref: '3.3.0'
     file: '/templates/gitlab-ci-bash.yml'
+
+variables:
+  # 2: set/override template variables
+  BASH_BATS_ENABLED: "true" # ⚠ this is only an example
 ```
 
 ## Jobs
@@ -19,12 +42,12 @@ include:
 
 This job performs a static analysis of your shell scripts using [ShellCheck](https://github.com/koalaman/shellcheck).
 
-| Name                    | Description                            | Default value     |
+| Input / Variable | Description                            | Default value     |
 | ----------------------- | -------------------------------------- | ----------------- |
-| `BASH_SHELLCHECK_DISABLED` | Set to `true` to disable ShellCheck                                                | _none_ (enabled) |
-| `BASH_SHELLCHECK_IMAGE` | The Docker image used to run [ShellCheck](https://github.com/koalaman/shellcheck) | `registry.hub.docker.com/koalaman/shellcheck-alpine:stable` |
-| `BASH_SHELLCHECK_FILES` | Shell file(s) pattern to analyse                                                  | `**/*.sh`            |
-| `BASH_SHELLCHECK_OPTS`  | ShellCheck [options](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md) | _none_ |
+| `shellcheck-disabled` / `BASH_SHELLCHECK_DISABLED` | Set to `true` to disable ShellCheck                                                | _none_ (enabled) |
+| `shellcheck-image` / `BASH_SHELLCHECK_IMAGE` | The Docker image used to run [ShellCheck](https://github.com/koalaman/shellcheck) | `registry.hub.docker.com/koalaman/shellcheck-alpine:stable` |
+| `shellcheck-files` / `BASH_SHELLCHECK_FILES` | Shell file(s) pattern to analyse                                                  | `**/*.sh`            |
+| `shellcheck-opts` / `BASH_SHELLCHECK_OPTS` | ShellCheck [options](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md) | _none_ |
 
 ### `bash-bats` job
 
@@ -32,13 +55,13 @@ This job performs unit tests based on [Bats](https://bats-core.readthedocs.io/)
 
 The job uses the following variables:
 
-| Name                    | Description                            | Default value     |
+| Input / Variable | Description                            | Default value     |
 | ----------------------- | -------------------------------------- | ----------------- |
-| `BASH_BATS_ENABLED`     | Set to `true` to enable bats tests                                                    | _none_ (disabled) |
-| `BASH_BATS_IMAGE`       | The Docker image used to run [Bats](https://hub.docker.com/r/bats/bats) | `registry.hub.docker.com/bats/bats:latest` |
-| `BASH_BATS_TESTS`       | The path to a Bats test file, or the path to a directory containing Bats test files | `tests`           |
-| `BASH_BATS_OPTS`        | Bats [options](https://bats-core.readthedocs.io/en/stable/usage.html)                | _none_ |
-| `BASH_BATS_LIBRARIES`   | Coma separated list of Bats [libraries and add-ons](https://bats-core.readthedocs.io/en/stable/writing-tests.html#libraries-and-add-ons) (formatted as `lib_name_1@archive_url_1 lib_name_2@archive_url_2 ...`) | _none_ |
+| `bats-enabled` / `BASH_BATS_ENABLED` | Set to `true` to enable bats tests                                                    | _none_ (disabled) |
+| `bats-image` / `BASH_BATS_IMAGE` | The Docker image used to run [Bats](https://hub.docker.com/r/bats/bats) | `registry.hub.docker.com/bats/bats:latest` |
+| `bats-tests` / `BASH_BATS_TESTS` | The path to a Bats test file, or the path to a directory containing Bats test files | `tests`           |
+| `bats-opts` / `BASH_BATS_OPTS` | Bats [options](https://bats-core.readthedocs.io/en/stable/usage.html)                | _none_ |
+| `bats-libraries` / `BASH_BATS_LIBRARIES` | Coma separated list of Bats [libraries and add-ons](https://bats-core.readthedocs.io/en/stable/writing-tests.html#libraries-and-add-ons) (formatted as `lib_name_1@archive_url_1 lib_name_2@archive_url_2 ...`) | _none_ |
 
 In addition to a textual report in the console, this job produces the following reports, kept for one day:
 
diff --git a/bumpversion.sh b/bumpversion.sh
index f06829a..ed44d7b 100755
--- a/bumpversion.sh
+++ b/bumpversion.sh
@@ -27,13 +27,13 @@ if [[ "$curVer" ]]; then
   log_info "Bump version from \\e[33;1m${curVer}\\e[0m to \\e[33;1m${nextVer}\\e[0m (release type: $relType)..."
 
   # replace in README
-  sed -e "s/ref: '$curVer'/ref: '$nextVer'/" README.md > README.md.next
+  sed -e "s/ref: *'$curVer'/ref: '$nextVer'/" -e "s/ref: *\"$curVer\”/ref: \”$nextVer\”/" -e "s/component: *\(.*\)@$curVer/component: \1@$nextVer/" README.md > README.md.next
   mv -f README.md.next README.md
 
   # replace in template and variants
   for tmpl in templates/*.yml
   do
-    sed -e "s/\"$curVer\"/\"$nextVer\"/" "$tmpl" > "$tmpl.next"
+    sed -e "s/command: *\[\"--service\", \"\(.*\)\", \"$curVer\"\]/command: [\"--service\", \"\1\", \"$nextVer\"]/" "$tmpl" > "$tmpl.next"
     mv -f "$tmpl.next" "$tmpl"
   done
 else
diff --git a/kicker.json b/kicker.json
index 7457b75..fcb0459 100644
--- a/kicker.json
+++ b/kicker.json
@@ -3,6 +3,8 @@
   "description": "Test and analyse your shell code",
   "template_path": "templates/gitlab-ci-bash.yml",
   "kind": "build",
+  "prefix": "bash",
+  "is_component": true,
   "features": [
     {
       "id": "shellcheck",
diff --git a/logo.png b/logo.png
index abbd377dd0e3755ab918cc71cb5402551a8a156a..626db6146c3eed4930dff68bb537f68e5f4c7c64 100644
GIT binary patch
literal 15247
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
ZZzsJ$a80JbJq88_22WQ%mvv4FO#obTuMPkJ

literal 19758
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
SsC)qJ!|-(Vb6Mw<&;$VIbIKtA

diff --git a/templates/gitlab-ci-bash.yml b/templates/gitlab-ci-bash.yml
index b130e4e..d7c751f 100644
--- a/templates/gitlab-ci-bash.yml
+++ b/templates/gitlab-ci-bash.yml
@@ -13,6 +13,43 @@
 # program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 # Floor, Boston, MA  02110-1301, USA.
 # =========================================================================================
+spec:
+  inputs:
+    shellcheck-disabled:
+      description: Disable ShellCheck
+      type: boolean
+      default: false
+    shellcheck-image:
+      description: The Docker image used to run [ShellCheck](https://github.com/koalaman/shellcheck)
+      default: registry.hub.docker.com/koalaman/shellcheck-alpine:stable
+    shellcheck-files:
+      description: Shell file(s) pattern to analyse
+      default: '**/*.sh'
+    shellcheck-opts:
+      description: ShellCheck [options](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md)
+      default: ''
+    bats-enabled:
+      description: Enable Bats
+      type: boolean
+      default: false
+    bats-image:
+      description: The Docker image used to run [Bats](https://hub.docker.com/r/bats/bats)
+      default: registry.hub.docker.com/bats/bats:latest
+    bats-tests:
+      description: The path to a Bats test file, or the path to a directory containing Bats test files
+      default: tests
+    bats-opts:
+      description: Bats [options](https://bats-core.readthedocs.io/en/stable/usage.html)
+      default: ''
+    bats-libraries:
+      description: |-
+        Coma separated list of Bats [libraries and add-ons](https://bats-core.readthedocs.io/en/stable/writing-tests.html#libraries-and-add-ons)
+
+        Formatted as: `lib_name_1@archive_url_1 lib_name_2@archive_url_2 ...`
+
+        Example: `bats-support@https://github.com/bats-core/bats-support/archive/v0.3.0.zip bats-assert@https://github.com/bats-core/bats-assert/archive/v2.0.0.zip`
+      default: ''
+---
 # default workflow rules: Merge Request pipelines
 workflow:
   rules:
@@ -56,19 +93,25 @@ workflow:
 
 variables:
   # variabilized tracking image
-  TBC_TRACKING_IMAGE: "registry.gitlab.com/to-be-continuous/tools/tracking:master"
+  TBC_TRACKING_IMAGE: registry.gitlab.com/to-be-continuous/tools/tracking:master
 
-  BASH_BATS_IMAGE: "registry.hub.docker.com/bats/bats:latest"
-  BASH_BATS_TESTS: "tests"
+  BASH_BATS_IMAGE: $[[ inputs.bats-image ]]
+  BASH_BATS_TESTS: $[[ inputs.bats-tests ]]
 
-  BASH_SHELLCHECK_IMAGE: "registry.hub.docker.com/koalaman/shellcheck-alpine:stable"
-  BASH_SHELLCHECK_FILES: "**/*.sh"
+  BASH_SHELLCHECK_IMAGE: $[[ inputs.shellcheck-image ]]
+  BASH_SHELLCHECK_FILES: $[[ inputs.shellcheck-files ]]
 
   # default production ref name (pattern)
   PROD_REF: '/^(master|main)$/'
   # default integration ref name (pattern)
   INTEG_REF: '/^develop$/'
 
+  BASH_SHELLCHECK_DISABLED: $[[ inputs.shellcheck-disabled ]]
+  BASH_SHELLCHECK_OPTS: $[[ inputs.shellcheck-opts ]]
+  BASH_BATS_ENABLED: $[[ inputs.bats-enabled ]]
+  BASH_BATS_OPTS: $[[ inputs.bats-opts ]]
+  BASH_BATS_LIBRARIES: $[[ inputs.bats-libraries ]]
+
 stages:
   - build
   - test
-- 
GitLab