mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-02-10 11:47:03 +00:00
Compare commits
8 commits
ee83cec049
...
dc1903c4b4
| Author | SHA1 | Date | |
|---|---|---|---|
| dc1903c4b4 | |||
| 2567293368 | |||
| 7a3d46eac7 | |||
| 8d7b1c9580 | |||
| 61cf12a052 | |||
| 7b49e8ea0c | |||
| da0c07497b | |||
| 84d4dd9d26 |
9 changed files with 175 additions and 4 deletions
28
.github/workflows/mirror.yaml
vendored
Normal file
28
.github/workflows/mirror.yaml
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
name: mirror
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
tags: ["*"]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
gitlab-com:
|
||||||
|
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
|
||||||
1
.github/workflows/releaser-pleaser.yaml
vendored
1
.github/workflows/releaser-pleaser.yaml
vendored
|
|
@ -43,3 +43,4 @@ jobs:
|
||||||
token: ${{ secrets.RELEASER_PLEASER_TOKEN }}
|
token: ${{ secrets.RELEASER_PLEASER_TOKEN }}
|
||||||
extra-files: |
|
extra-files: |
|
||||||
action.yml
|
action.yml
|
||||||
|
templates/run.yml
|
||||||
|
|
|
||||||
15
.gitlab-ci.yml
Normal file
15
.gitlab-ci.yml
Normal file
|
|
@ -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"
|
||||||
3
.ko.yaml
3
.ko.yaml
|
|
@ -1,3 +1,6 @@
|
||||||
defaultPlatforms:
|
defaultPlatforms:
|
||||||
- linux/arm64
|
- linux/arm64
|
||||||
- linux/amd64
|
- linux/amd64
|
||||||
|
|
||||||
|
# Need a shell for gitlab-ci
|
||||||
|
defaultBaseImage: cgr.dev/chainguard/busybox
|
||||||
|
|
|
||||||
23
CHANGELOG.md
23
CHANGELOG.md
|
|
@ -1,5 +1,28 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [v0.4.0-beta.1](https://github.com/apricote/releaser-pleaser/releases/tag/v0.4.0-beta.1)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- add shell to container image (#59)
|
||||||
|
- **gitlab**: add CI/CD component (#55)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- multiple extra-files are not evaluated properly (#61)
|
||||||
|
|
||||||
|
## [v0.4.0-beta.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.4.0-beta.0)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- add support for GitLab repositories (#49)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- **parser**: continue on unparsable commit message (#48)
|
||||||
|
- **cli**: command name in help output (#52)
|
||||||
|
- **parser**: invalid handling of empty lines (#53)
|
||||||
|
|
||||||
## [v0.3.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.3.0)
|
## [v0.3.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.3.0)
|
||||||
|
|
||||||
### :sparkles: Highlights
|
### :sparkles: Highlights
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,12 @@ inputs:
|
||||||
outputs: {}
|
outputs: {}
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: 'docker'
|
||||||
image: ghcr.io/apricote/releaser-pleaser:v0.3.0 # x-releaser-pleaser-version
|
image: ghcr.io/apricote/releaser-pleaser:v0.4.0-beta.1 # x-releaser-pleaser-version
|
||||||
args:
|
args:
|
||||||
- run
|
- run
|
||||||
- --forge=github
|
- --forge=github
|
||||||
- --branch=${{ inputs.branch }}
|
- --branch=${{ inputs.branch }}
|
||||||
- --extra-files=${{ inputs.extra-files }}
|
- --extra-files="${{ inputs.extra-files }}"
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ inputs.token }}
|
GITHUB_TOKEN: "${{ inputs.token }}"
|
||||||
GITHUB_USER: "oauth2"
|
GITHUB_USER: "oauth2"
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,12 @@ func run(cmd *cobra.Command, _ []string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseExtraFiles(input string) []string {
|
func parseExtraFiles(input string) []string {
|
||||||
|
// We quote the arg to avoid issues with the expected newlines in the value.
|
||||||
|
// Need to remove those quotes before parsing the data
|
||||||
|
input = strings.Trim(input, `"`)
|
||||||
|
// In some situations we get a "\n" sequence, where we actually expect new lines,
|
||||||
|
// replace the two characters with an actual new line
|
||||||
|
input = strings.ReplaceAll(input, `\n`, "\n")
|
||||||
lines := strings.Split(input, "\n")
|
lines := strings.Split(input, "\n")
|
||||||
|
|
||||||
extraFiles := make([]string, 0, len(lines))
|
extraFiles := make([]string, 0, len(lines))
|
||||||
|
|
|
||||||
59
cmd/rp/cmd/run_test.go
Normal file
59
cmd/rp/cmd/run_test.go
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_parseExtraFiles(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input string
|
||||||
|
want []string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "empty",
|
||||||
|
input: ``,
|
||||||
|
want: []string{},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty quoted",
|
||||||
|
input: `""`,
|
||||||
|
want: []string{},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "single",
|
||||||
|
input: `foo.txt`,
|
||||||
|
want: []string{"foo.txt"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "single quoted",
|
||||||
|
input: `"foo.txt"`,
|
||||||
|
want: []string{"foo.txt"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "multiple",
|
||||||
|
input: `foo.txt
|
||||||
|
dir/Chart.yaml`,
|
||||||
|
want: []string{"foo.txt", "dir/Chart.yaml"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "multiple quoted",
|
||||||
|
input: `"foo.txt
|
||||||
|
dir/Chart.yaml"`,
|
||||||
|
want: []string{"foo.txt", "dir/Chart.yaml"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "multiple with broken new lines",
|
||||||
|
input: `"action.yml\ntemplates/run.yml\n"`,
|
||||||
|
want: []string{"action.yml", "templates/run.yml"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
got := parseExtraFiles(tt.input)
|
||||||
|
assert.Equal(t, tt.want, got)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
36
templates/run.yml
Normal file
36
templates/run.yml
Normal file
|
|
@ -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.1 # x-releaser-pleaser-version
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
GITLAB_TOKEN: $[[ inputs.token ]]
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
rp run \
|
||||||
|
--forge=gitlab \
|
||||||
|
--branch=$[[ inputs.branch ]] \
|
||||||
|
--extra-files="$[[ inputs.extra-files ]]"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue