1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-03 13:11:48 +02:00

fix: ensure aur key has eof newline

This commit is contained in:
Carlos A Becker 2022-03-06 17:27:23 -03:00
parent c0779dbd30
commit 788a4394e1
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 21 additions and 1 deletions

View File

@ -361,7 +361,7 @@ func doPublish(ctx *context.Context, pkgs []*artifact.Artifact) error {
return err return err
} }
key, err = keyPath(strings.TrimSpace(key)) key, err = keyPath(key)
if err != nil { if err != nil {
return err return err
} }
@ -454,6 +454,13 @@ func keyPath(key string) (string, error) {
return "", fmt.Errorf("failed to store private key: %w", err) return "", fmt.Errorf("failed to store private key: %w", err)
} }
defer f.Close() defer f.Close()
// the key needs to EOF at an empty line, seems like github actions
// is somehow removing them.
if !strings.HasSuffix(key, "\n") {
key += "\n"
}
if _, err := f.Write([]byte(key)); err != nil { if _, err := f.Write([]byte(key)); err != nil {
return "", fmt.Errorf("failed to store private key: %w", err) return "", fmt.Errorf("failed to store private key: %w", err)
} }

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"strings"
"testing" "testing"
"github.com/charmbracelet/keygen" "github.com/charmbracelet/keygen"
@ -734,6 +735,18 @@ func TestKeyPath(t *testing.T) {
require.EqualError(t, err, `aur.private_key is empty`) require.EqualError(t, err, `aur.private_key is empty`)
require.Equal(t, "", result) require.Equal(t, "", result)
}) })
t.Run("with invalid EOF", func(t *testing.T) {
path := makeKey(t, keygen.Ed25519)
bts, err := os.ReadFile(path)
require.NoError(t, err)
result, err := keyPath(strings.TrimSpace(string(bts)))
require.NoError(t, err)
resultbts, err := os.ReadFile(result)
require.NoError(t, err)
require.Equal(t, string(bts), string(resultbts))
})
} }
func makeBareRepo(tb testing.TB) string { func makeBareRepo(tb testing.TB) string {