mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-01-13 13:21:00 +00:00
fix: multiple extra-files are not evaluated properly (#61)
Quoting issues caused multiple extra-files to be ignored.
This commit is contained in:
parent
7a3d46eac7
commit
2567293368
4 changed files with 68 additions and 3 deletions
|
|
@ -26,7 +26,7 @@ runs:
|
|||
- run
|
||||
- --forge=github
|
||||
- --branch=${{ inputs.branch }}
|
||||
- --extra-files=${{ inputs.extra-files }}
|
||||
- --extra-files="${{ inputs.extra-files }}"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ inputs.token }}
|
||||
GITHUB_TOKEN: "${{ inputs.token }}"
|
||||
GITHUB_USER: "oauth2"
|
||||
|
|
|
|||
|
|
@ -95,6 +95,12 @@ func run(cmd *cobra.Command, _ []string) error {
|
|||
}
|
||||
|
||||
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")
|
||||
|
||||
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)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -33,4 +33,4 @@ releaser-pleaser:
|
|||
rp run \
|
||||
--forge=gitlab \
|
||||
--branch=$[[ inputs.branch ]] \
|
||||
--extra-files=$[[ inputs.extra-files ]]
|
||||
--extra-files="$[[ inputs.extra-files ]]"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue