mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Three builders.
This commit is contained in:
@@ -70,8 +70,19 @@ require sigs.k8s.io/kustomize/v4 v4.0.1
|
|||||||
|
|
||||||
#### Release artifacts
|
#### Release artifacts
|
||||||
|
|
||||||
Source code tar balls and zip files (no executables)
|
Release notes should appear on the [release page].
|
||||||
appear on the [release page].
|
|
||||||
|
[release notes generator]: https://github.com/kubernetes-sigs/controller-runtime/blob/master/hack/release/release-notes.sh
|
||||||
|
|
||||||
|
> TODO: install a decent library [release notes generator].
|
||||||
|
> Until then, just run something like
|
||||||
|
> ```
|
||||||
|
> git log --pretty="%h - %s (%aN)" v3.1.0..v3.2.0
|
||||||
|
> ```
|
||||||
|
> and summarize the results via the [release page] UX.
|
||||||
|
|
||||||
|
There's no binary, just a repo tag in the form `v4.3.2`
|
||||||
|
that others can `require` from their `go.mod` files.
|
||||||
|
|
||||||
### sigs.k8s.io/kustomize/pluginator
|
### sigs.k8s.io/kustomize/pluginator
|
||||||
|
|
||||||
@@ -190,7 +201,7 @@ fi
|
|||||||
Install [`cloud-build-local`], then run
|
Install [`cloud-build-local`], then run
|
||||||
|
|
||||||
```
|
```
|
||||||
./releasing/localbuild.sh
|
./releasing/localbuild.sh (kustomize|pluginator)
|
||||||
```
|
```
|
||||||
|
|
||||||
This should create release artifacts in a local directory.
|
This should create release artifacts in a local directory.
|
||||||
|
|||||||
@@ -2,14 +2,85 @@
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# goreleaser must be run from the _module_ being released.
|
# Script to run http://goreleaser.com
|
||||||
cd kustomize
|
|
||||||
|
|
||||||
/bin/goreleaser \
|
module=$1
|
||||||
release \
|
shift
|
||||||
--config=../releasing/goreleaser.yaml \
|
|
||||||
--rm-dist \
|
if [ "$module" == "api" ]; then
|
||||||
--skip-validate \
|
echo "goreleaser only releases 'main' packages (executables)"
|
||||||
$@
|
echo "See https://github.com/goreleaser/goreleaser/issues/981"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
config=$(mktemp)
|
||||||
|
|
||||||
|
cat <<EOF >$config
|
||||||
|
project_name: $module
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
- GO111MODULE=on
|
||||||
|
checksum:
|
||||||
|
name_template: 'checksums.txt'
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- '^docs:'
|
||||||
|
- '^test:'
|
||||||
|
- Merge pull request
|
||||||
|
- Merge branch
|
||||||
|
release:
|
||||||
|
github:
|
||||||
|
owner: kubernetes-sigs
|
||||||
|
name: kustomize
|
||||||
|
EOF
|
||||||
|
|
||||||
|
case "$module" in
|
||||||
|
kustomize)
|
||||||
|
cat <<EOF >>$config
|
||||||
|
builds:
|
||||||
|
- main: ./main.go
|
||||||
|
binary: kustomize
|
||||||
|
ldflags: -s -X sigs.k8s.io/kustomize/kustomize/v3/provenance.version={{.Version}} -X sigs.k8s.io/kustomize/kustomize/v3/provenance.gitCommit={{.Commit}} -X sigs.k8s.io/kustomize/kustomize/v3/provenance.buildDate={{.Date}}
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- darwin
|
||||||
|
- windows
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
archive:
|
||||||
|
format: binary
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
pluginator)
|
||||||
|
cat <<EOF >>$config
|
||||||
|
builds:
|
||||||
|
- main: ./main.go
|
||||||
|
binary: pluginator
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- darwin
|
||||||
|
- windows
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
archive:
|
||||||
|
format: binary
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Don't recognize module $module"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cat $config
|
||||||
|
|
||||||
|
if [ "$module" != "api" ]; then
|
||||||
|
# goreleaser must be run from the _module_ being released.
|
||||||
|
cd $module
|
||||||
|
fi
|
||||||
|
|
||||||
|
/bin/goreleaser release --config=$config --rm-dist --skip-validate $@
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ steps:
|
|||||||
args: [fetch, --tags, --depth=100]
|
args: [fetch, --tags, --depth=100]
|
||||||
- name: goreleaser/goreleaser
|
- name: goreleaser/goreleaser
|
||||||
entrypoint: /bin/sh
|
entrypoint: /bin/sh
|
||||||
args: ["releasing/cloudbuild.sh"]
|
args: ["releasing/cloudbuild.sh", "kustomize"]
|
||||||
secretEnv: ['GITHUB_TOKEN']
|
secretEnv: ['GITHUB_TOKEN']
|
||||||
secrets:
|
secrets:
|
||||||
- kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token
|
- kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token
|
||||||
11
releasing/cloudbuild_pluginator.yaml
Normal file
11
releasing/cloudbuild_pluginator.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
steps:
|
||||||
|
- name: "gcr.io/cloud-builders/git"
|
||||||
|
args: [fetch, --tags, --depth=100]
|
||||||
|
- name: goreleaser/goreleaser
|
||||||
|
entrypoint: /bin/sh
|
||||||
|
args: ["releasing/cloudbuild.sh", "pluginator"]
|
||||||
|
secretEnv: ['GITHUB_TOKEN']
|
||||||
|
secrets:
|
||||||
|
- kmsKeyName: projects/kustomize-199618/locations/global/keyRings/github-tokens/cryptoKeys/gh-release-token
|
||||||
|
secretEnv:
|
||||||
|
GITHUB_TOKEN: CiQAyrREbPgXJOeT7M3t+WlxkhXwlMPudixBeiyWTjmLOMLqdK4SUQA0W+xUmDJKAhyfHCcwqSEzUn9OwKC7XAYcmwe0CCKTCbPbDgmioDK24q3LVapndXNvnnHvCjhOJNEr1o+P1DCF+LlzYV2YL8lP09rrKrslPg==
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
# Documentation at http://goreleaser.com
|
|
||||||
# By default, output sent to ./dist (see docs).
|
|
||||||
#
|
|
||||||
# 2019-may-29: windows removed because of error
|
|
||||||
# pkg/plugins/execplugin.go:111:2: undefined: syscall.Mkfifo
|
|
||||||
#
|
|
||||||
project_name: kustomize
|
|
||||||
builds:
|
|
||||||
- main: ./main.go
|
|
||||||
binary: kustomize
|
|
||||||
ldflags: -s -X sigs.k8s.io/kustomize/kustomize/v3/provenance.version={{.Version}} -X sigs.k8s.io/kustomize/kustomize/v3/provenance.gitCommit={{.Commit}} -X sigs.k8s.io/kustomize/kustomize/v3/provenance.buildDate={{.Date}}
|
|
||||||
goos:
|
|
||||||
- linux
|
|
||||||
- darwin
|
|
||||||
- windows
|
|
||||||
goarch:
|
|
||||||
- amd64
|
|
||||||
env:
|
|
||||||
- CGO_ENABLED=0
|
|
||||||
- GO111MODULE=on
|
|
||||||
checksum:
|
|
||||||
name_template: 'checksums.txt'
|
|
||||||
archive:
|
|
||||||
format: binary
|
|
||||||
snapshot:
|
|
||||||
name_template: "master"
|
|
||||||
changelog:
|
|
||||||
sort: asc
|
|
||||||
filters:
|
|
||||||
exclude:
|
|
||||||
- '^docs:'
|
|
||||||
- '^test:'
|
|
||||||
- Merge pull request
|
|
||||||
- Merge branch
|
|
||||||
release:
|
|
||||||
github:
|
|
||||||
owner: kubernetes-sigs
|
|
||||||
name: kustomize
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Usage - from the repository root, enter
|
# Usage - from the repository root, enter
|
||||||
#
|
#
|
||||||
# ./releasing/localbuild.sh
|
# ./releasing/localbuild.sh (kustomize|pluginator)
|
||||||
#
|
#
|
||||||
# The script attempts to use cloudbuild configuration
|
# The script attempts to use cloudbuild configuration
|
||||||
# to create a release "locally".
|
# to create a release "locally".
|
||||||
@@ -17,25 +17,53 @@
|
|||||||
# applied to the kustomize repo, the cloud builder
|
# applied to the kustomize repo, the cloud builder
|
||||||
# reads the repository-relative file
|
# reads the repository-relative file
|
||||||
#
|
#
|
||||||
# releasing/cloudbuild.yaml
|
# releasing/cloudbuild_(kustomize|pluginator).yaml
|
||||||
#
|
#
|
||||||
# Inside this yaml file is a reference to the script
|
# Inside this yaml file is a reference to the script
|
||||||
#
|
#
|
||||||
# releasing/cloudbuild.sh
|
# releasing/cloudbuild.sh
|
||||||
#
|
#
|
||||||
# which runs goreleaser from the proper directory.
|
# which runs goreleaser from the proper directory, with the
|
||||||
|
# proper config.
|
||||||
#
|
#
|
||||||
# The script you are reading now does something
|
# The script you are reading now does something
|
||||||
# analogous via docker tricks.
|
# analogous via docker tricks.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Modify cloudbuild.yaml to add the --snapshot flag.
|
module=$1
|
||||||
# This suppresses the github release, and leaves
|
case "$module" in
|
||||||
# the build output in the kustomize/dist directory.
|
api)
|
||||||
|
echo "goreleaser only releases 'main' packages (executables)"
|
||||||
|
echo "See https://github.com/goreleaser/goreleaser/issues/981"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
kustomize)
|
||||||
|
;;
|
||||||
|
pluginator)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Don't recognize module=$module"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
config=$(mktemp)
|
config=$(mktemp)
|
||||||
sed 's|\["releasing/cloudbuild.sh"\]|["releasing/cloudbuild.sh", "--snapshot"]|' \
|
cp releasing/cloudbuild_${module}.yaml $config
|
||||||
releasing/cloudbuild.yaml > $config
|
|
||||||
|
# Delete the cloud-builders/git step.
|
||||||
|
sed -i '2,3d' $config
|
||||||
|
|
||||||
|
# Add the --snapshot flag to suppress the
|
||||||
|
# github release and leave the build output
|
||||||
|
# in the kustomize/dist directory.
|
||||||
|
sed -i 's|"\]$|", "--snapshot"]|' \
|
||||||
|
$config
|
||||||
|
|
||||||
|
echo "Executing cloud-build-local with:"
|
||||||
|
echo "========================="
|
||||||
|
cat $config
|
||||||
|
echo "========================="
|
||||||
|
|
||||||
cloud-build-local \
|
cloud-build-local \
|
||||||
--config=$config \
|
--config=$config \
|
||||||
@@ -43,7 +71,8 @@ cloud-build-local \
|
|||||||
--dryrun=false \
|
--dryrun=false \
|
||||||
.
|
.
|
||||||
|
|
||||||
# Print results of local build
|
echo " "
|
||||||
|
echo "Result of local build:"
|
||||||
echo "##########################################"
|
echo "##########################################"
|
||||||
tree ./kustomize/dist
|
tree ./kustomize/dist
|
||||||
echo "##########################################"
|
echo "##########################################"
|
||||||
|
|||||||
Reference in New Issue
Block a user