-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
- Loading branch information
Showing
7 changed files
with
86 additions
and
3 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: mirror | ||
on: | ||
push: | ||
branches: [main, gitlab] # TODO | ||
tags: ["*"] | ||
|
||
jobs: | ||
gitlab: | ||
runs-on: ubuntu-latest | ||
env: | ||
REMOTE: mirror | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
# Need all to fetch all tags so we can push them | ||
fetch-depth: 0 | ||
|
||
- name: Add Remote | ||
env: | ||
CLONE_URL: "https://releaser-pleaser:${{ secrets.GITLAB_COM_PUSH_TOKEN }}@gitlab.com/apricote/releaser-pleaser.git" | ||
run: git remote add $REMOTE $CLONE_URL | ||
|
||
- name: Push Branches | ||
run: git push --force --all --verbose $REMOTE | ||
|
||
- name: Push Tags | ||
run: git push --force --tags --verbose $REMOTE |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
stages: [release] | ||
|
||
# For the GitLab CI/CD component to be usable, it needs to be published in | ||
# the CI/CD catalog. This happens on new releases. | ||
# As the primary tagging happens on GitHub, we only react to pushed tags | ||
# and create a corresponding GitLab Release. | ||
create-release: | ||
stage: release | ||
image: registry.gitlab.com/gitlab-org/release-cli:latest | ||
script: echo "Creating release $CI_COMMIT_TAG" | ||
rules: | ||
- if: $CI_COMMIT_TAG | ||
release: | ||
tag_name: "$CI_COMMIT_TAG" | ||
description: "$CI_COMMIT_TAG_MESSAGE" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
defaultPlatforms: | ||
- linux/arm64 | ||
- linux/amd64 | ||
- linux/amd64 | ||
|
||
# Need a shell for gitlab-ci | ||
defaultBaseImage: cgr.dev/chainguard/busybox |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# GitLab CI/CD Component |
Empty file.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
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 | ||
--- | ||
|
||
releaser-pleaser: | ||
stage: $[[ inputs.stage ]] | ||
rules: | ||
# There is no way to run a pipeline when the MR description is updated :( | ||
- if: $CI_COMMIT_BRANCH == "$[[ inputs.branch ]]" | ||
image: | ||
name: ghcr.io/apricote/releaser-pleaser:v0.4.0-beta.0 # x-releaser-pleaser-version | ||
entrypoint: [""] | ||
variables: | ||
GITLAB_TOKEN: $[[ inputs.token ]] | ||
script: | ||
- | | ||
rp run \ | ||
--forge=gitlab \ | ||
--branch=$[[ inputs.branch ]] \ | ||
--extra-files=$[[ inputs.extra-files ]] |