mirror of
https://github.com/siderolabs/kres.git
synced 2026-02-05 09:45:35 +01:00
chore: do not mark release.toml as uneditable
It is meant to be edited. Plus other small cleanups. Signed-off-by: Alexey Palazhchenko <alexey.palazhchenko@talos-systems.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2021-05-17T13:13:58Z by kres d88b53b-dirty.
|
||||
# Generated on 2021-10-06T11:42:19Z by kres b3f580e.
|
||||
|
||||
codecov:
|
||||
require_ci_to_pass: false
|
||||
@@ -9,7 +9,7 @@ coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
target: 50%
|
||||
target: 10%
|
||||
threshold: 0.5%
|
||||
base: auto
|
||||
if_ci_failed: success
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2021-08-24T17:25:25Z by kres e5f1e7e-dirty.
|
||||
# Generated on 2021-10-05T12:04:14Z by kres 3a3fd2c-dirty.
|
||||
|
||||
# options for analysis running
|
||||
run:
|
||||
@@ -89,7 +89,7 @@ linters-settings:
|
||||
require-explanation: false
|
||||
require-specific: true
|
||||
rowserrcheck: {}
|
||||
testpackage:
|
||||
testpackage: {}
|
||||
unparam:
|
||||
check-exported: false
|
||||
unused:
|
||||
|
||||
@@ -17,3 +17,8 @@ kind: common.Image
|
||||
name: image-kres
|
||||
spec:
|
||||
entrypointArgs: ['gen']
|
||||
|
||||
---
|
||||
kind: service.CodeCov
|
||||
spec:
|
||||
targetThreshold: 10
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2021-05-20T21:00:34Z by kres fb41160.
|
||||
|
||||
|
||||
#!/bin/bash
|
||||
# Generated on 2021-10-05T12:02:21Z by kres 3a3fd2c-dirty.
|
||||
|
||||
set -e
|
||||
|
||||
@@ -66,3 +63,4 @@ EOF
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2021-05-20T21:00:34Z by kres fb41160.
|
||||
|
||||
|
||||
# commit to be tagged for the new release
|
||||
commit = "HEAD"
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ linters-settings:
|
||||
require-explanation: false
|
||||
require-specific: true
|
||||
rowserrcheck: {}
|
||||
testpackage:
|
||||
testpackage: {}
|
||||
unparam:
|
||||
check-exported: false
|
||||
unused:
|
||||
|
||||
@@ -19,7 +19,7 @@ var PreambleTimestamp time.Time
|
||||
var PreambleCreator string
|
||||
|
||||
// Preamble returns file auto-generated preamble with specified comment character.
|
||||
func Preamble(commentPrefix string, commentPostFixes ...string) string {
|
||||
func Preamble(commentPrefix string) string {
|
||||
const preamble = `
|
||||
THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
|
||||
@@ -39,7 +39,7 @@ Generated on %s by %s.
|
||||
byLines := strings.Split(strings.TrimSpace(preambleStr), "\n")
|
||||
|
||||
for i := range byLines {
|
||||
byLines[i] = strings.TrimSpace(commentPrefix + byLines[i] + strings.Join(commentPostFixes, " "))
|
||||
byLines[i] = strings.TrimSpace(commentPrefix + byLines[i])
|
||||
}
|
||||
|
||||
return strings.Join(byLines, "\n") + "\n\n"
|
||||
|
||||
@@ -6,10 +6,12 @@
|
||||
package release
|
||||
|
||||
import (
|
||||
_ "embed" //nolint:gci // allows go:embed usage
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
||||
"github.com/talos-systems/kres/internal/output"
|
||||
@@ -17,86 +19,15 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
release = "./hack/release.sh"
|
||||
releaseScript = "./hack/release.sh"
|
||||
releaseTemplate = "./hack/release.toml"
|
||||
)
|
||||
|
||||
const releaseStr = `
|
||||
#!/bin/bash
|
||||
//go:embed release.sh
|
||||
var releaseScriptStr string
|
||||
|
||||
set -e
|
||||
|
||||
RELEASE_TOOL_IMAGE="ghcr.io/talos-systems/release-tool:latest"
|
||||
|
||||
function release-tool {
|
||||
docker pull "${RELEASE_TOOL_IMAGE}" >/dev/null
|
||||
docker run --rm -w /src -v "${PWD}":/src:ro "${RELEASE_TOOL_IMAGE}" -l -d -n -t "${1}" ./hack/release.toml
|
||||
}
|
||||
|
||||
function changelog {
|
||||
if [ "$#" -eq 1 ]; then
|
||||
(release-tool ${1}; echo; cat CHANGELOG.md) > CHANGELOG.md- && mv CHANGELOG.md- CHANGELOG.md
|
||||
else
|
||||
echo 1>&2 "Usage: $0 changelog [tag]"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function release-notes {
|
||||
release-tool "${2}" > "${1}"
|
||||
}
|
||||
|
||||
function cherry-pick {
|
||||
if [ $# -ne 2 ]; then
|
||||
echo 1>&2 "Usage: $0 cherry-pick <commit> <branch>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git checkout $2
|
||||
git fetch
|
||||
git rebase upstream/$2
|
||||
git cherry-pick -x $1
|
||||
}
|
||||
|
||||
function commit {
|
||||
if [ $# -ne 1 ]; then
|
||||
echo 1>&2 "Usage: $0 commit <tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git commit -s -m "release($1): prepare release" -m "This is the official $1 release."
|
||||
}
|
||||
|
||||
if declare -f "$1" > /dev/null
|
||||
then
|
||||
cmd="$1"
|
||||
shift
|
||||
$cmd "$@"
|
||||
else
|
||||
cat <<EOF
|
||||
Usage:
|
||||
commit: Create the official release commit message.
|
||||
cherry-pick: Cherry-pick a commit into a release branch.
|
||||
changelog: Update the specified CHANGELOG.
|
||||
release-notes: Create release notes for GitHub release.
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
fi`
|
||||
|
||||
const releaseTemplateStr = `
|
||||
# commit to be tagged for the new release
|
||||
commit = "HEAD"
|
||||
|
||||
project_name = "{{ .GitHubRepository }}"
|
||||
github_repo = "{{ .GitHubOrganization}}/{{ .GitHubRepository }}"
|
||||
match_deps = "^github.com/({{ .GitHubOrganization }}/[a-zA-Z0-9-]+)$"
|
||||
|
||||
# previous = -
|
||||
# pre_release = true
|
||||
|
||||
# [notes]
|
||||
`
|
||||
//go:embed release.toml
|
||||
var releaseTemplateStr string
|
||||
|
||||
// Output implements .gitignore generation.
|
||||
type Output struct {
|
||||
@@ -127,7 +58,7 @@ func (o *Output) Compile(node interface{}) error {
|
||||
|
||||
// Filenames implements output.FileWriter interface.
|
||||
func (o *Output) Filenames() []string {
|
||||
return []string{release, releaseTemplate}
|
||||
return []string{releaseScript, releaseTemplate}
|
||||
}
|
||||
|
||||
// SetMeta grabs build options.
|
||||
@@ -138,8 +69,8 @@ func (o *Output) SetMeta(meta *meta.Options) {
|
||||
// GenerateFile implements output.FileWriter interface.
|
||||
func (o *Output) GenerateFile(filename string, w io.Writer) error {
|
||||
switch filename {
|
||||
case release:
|
||||
return o.release(w)
|
||||
case releaseScript:
|
||||
return o.releaseScript(w)
|
||||
case releaseTemplate:
|
||||
return o.releaseTemplate(filename, w)
|
||||
default:
|
||||
@@ -149,14 +80,14 @@ func (o *Output) GenerateFile(filename string, w io.Writer) error {
|
||||
|
||||
// Permissions implements output.PermissionsWriter interface.
|
||||
func (o *Output) Permissions(filename string) os.FileMode {
|
||||
if filename == release {
|
||||
if filename == releaseScript {
|
||||
return 0o744
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func (o *Output) release(w io.Writer) error {
|
||||
func (o *Output) releaseScript(w io.Writer) error {
|
||||
if _, err := w.Write([]byte("#!/bin/bash\n\n")); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -165,7 +96,7 @@ func (o *Output) release(w io.Writer) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if _, err := fmt.Fprintf(w, "%s\n", releaseStr); err != nil {
|
||||
if _, err := fmt.Fprintf(w, "%s\n", releaseScriptStr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -183,11 +114,9 @@ func (o *Output) releaseTemplate(filename string, w io.Writer) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if _, err = w.Write([]byte(output.Preamble("# "))); err != nil {
|
||||
return err
|
||||
}
|
||||
// no preamble as this file is meant to be edited
|
||||
|
||||
tmpl, err := template.New("config").Parse(releaseTemplateStr)
|
||||
tmpl, err := template.New("config").Parse(strings.TrimSpace(releaseTemplateStr) + "\n")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
59
internal/output/release/release.sh
Normal file
59
internal/output/release/release.sh
Normal file
@@ -0,0 +1,59 @@
|
||||
set -e
|
||||
|
||||
RELEASE_TOOL_IMAGE="ghcr.io/talos-systems/release-tool:latest"
|
||||
|
||||
function release-tool {
|
||||
docker pull "${RELEASE_TOOL_IMAGE}" >/dev/null
|
||||
docker run --rm -w /src -v "${PWD}":/src:ro "${RELEASE_TOOL_IMAGE}" -l -d -n -t "${1}" ./hack/release.toml
|
||||
}
|
||||
|
||||
function changelog {
|
||||
if [ "$#" -eq 1 ]; then
|
||||
(release-tool ${1}; echo; cat CHANGELOG.md) > CHANGELOG.md- && mv CHANGELOG.md- CHANGELOG.md
|
||||
else
|
||||
echo 1>&2 "Usage: $0 changelog [tag]"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function release-notes {
|
||||
release-tool "${2}" > "${1}"
|
||||
}
|
||||
|
||||
function cherry-pick {
|
||||
if [ $# -ne 2 ]; then
|
||||
echo 1>&2 "Usage: $0 cherry-pick <commit> <branch>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git checkout $2
|
||||
git fetch
|
||||
git rebase upstream/$2
|
||||
git cherry-pick -x $1
|
||||
}
|
||||
|
||||
function commit {
|
||||
if [ $# -ne 1 ]; then
|
||||
echo 1>&2 "Usage: $0 commit <tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git commit -s -m "release($1): prepare release" -m "This is the official $1 release."
|
||||
}
|
||||
|
||||
if declare -f "$1" > /dev/null
|
||||
then
|
||||
cmd="$1"
|
||||
shift
|
||||
$cmd "$@"
|
||||
else
|
||||
cat <<EOF
|
||||
Usage:
|
||||
commit: Create the official release commit message.
|
||||
cherry-pick: Cherry-pick a commit into a release branch.
|
||||
changelog: Update the specified CHANGELOG.
|
||||
release-notes: Create release notes for GitHub release.
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
fi
|
||||
11
internal/output/release/release.toml
Normal file
11
internal/output/release/release.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
# commit to be tagged for the new release
|
||||
commit = "HEAD"
|
||||
|
||||
project_name = "{{ .GitHubRepository }}"
|
||||
github_repo = "{{ .GitHubOrganization}}/{{ .GitHubRepository }}"
|
||||
match_deps = "^github.com/({{ .GitHubOrganization }}/[a-zA-Z0-9-]+)$"
|
||||
|
||||
# previous = -
|
||||
# pre_release = true
|
||||
|
||||
# [notes]
|
||||
@@ -5,7 +5,9 @@
|
||||
// Package templates defines default templates for various JS components.
|
||||
package templates
|
||||
|
||||
import _ "embed" // allows go:embed usage
|
||||
import (
|
||||
_ "embed" //nolint:gci // allows go:embed usage
|
||||
)
|
||||
|
||||
// Babel babel.config.js.
|
||||
//go:embed babel.js
|
||||
|
||||
Reference in New Issue
Block a user