From 9e3236de1ab4447bcf249c59c71d95e12709cd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20T=C3=B6lle?= Date: Sat, 7 Sep 2024 22:30:58 +0200 Subject: [PATCH] feat(gitlab): add CI component This adds a GitLab CI/CD component that can be `included` in users GitLab CI configuration to integrate releaser-pleaser. Unlike the GitHub Action, this can not easily run whenever a merge request description is changed, only when changes are pushed to main. We also switch the container base image from `static` to `busybox` as GitLab CI requires a shell (`sh`) binary to be present for the image use to run jobs. --- .ko.yaml | 5 ++++- templates/run.yml | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 templates/run.yml diff --git a/.ko.yaml b/.ko.yaml index c7c0e49..49805d6 100644 --- a/.ko.yaml +++ b/.ko.yaml @@ -1,3 +1,6 @@ defaultPlatforms: - linux/arm64 - - linux/amd64 \ No newline at end of file + - linux/amd64 + +# Need a shell for gitlab-ci +defaultBaseImage: cgr.dev/chainguard/busybox diff --git a/templates/run.yml b/templates/run.yml new file mode 100644 index 0000000..8e15a65 --- /dev/null +++ b/templates/run.yml @@ -0,0 +1,38 @@ +spec: + inputs: + # Remember to update docs/reference/gitlab-ci-component.md + branch: + default: main + description: "This branch is used as the target for releases." + + token: + description: "GitLab token for creating and updating release MRs." + + extra-files: + description: 'List of files that are scanned for version references.' + default: "" + + stage: + default: build + description: 'Defines the build stage' + # Remember to update docs/reference/gitlab-ci-component.md +--- + +workflow: + rules: + # There is no way to run a pipeline when the MR description is updated :( + - if: $CI_COMMIT_BRANCH == "$[[ inputs.branch ]]" + +releaser-pleaser: + stage: $[[ inputs.stage ]] + image: + name: ghcr.io/apricote/releaser-pleaser:v0.3.0 # x-releaser-pleaser-version + entrypoint: [""] + variables: + GITLAB_TOKEN: $[[ inputs.token ]] + script: + - | + rp run \ + --forge=gitlab \ + --branch=$[[ inputs.branch ]] \ + --extra-files=$[[ inputs.extra-files ]]