forked from eksctl-io/eksctl
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This partially reverts commit 06cf5a4.
- Loading branch information
Showing
4 changed files
with
245 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
name: eksctl | ||
summary: a CLI for Amazon EKS | ||
description: | | ||
eksctl is a simple CLI tool for creating clusters on EKS - Amazon's new | ||
managed Kubernetes service for EC2. It is written in Go, and uses | ||
CloudFormation. | ||
. | ||
You can create a cluster in minutes with just one command - | ||
eksctl create cluster! | ||
confinement: strict | ||
base: core18 | ||
adopt-info: eksctl | ||
|
||
apps: | ||
eksctl: | ||
command: eksctl | ||
plugs: | ||
- network | ||
|
||
parts: | ||
eksctl: | ||
source: . | ||
plugin: make | ||
make-parameters: [ build ] | ||
artifacts: [ eksctl ] | ||
override-pull: | | ||
snapcraftctl pull | ||
EKSCTL_TAG="$(git tag --sort=taggerdate | egrep -v '^(latest_release)' | tail -n 1)" | ||
set +e | ||
git describe --exact-match --tags $(git log -n1 --pretty='%h') | ||
retVal=$? | ||
set -e | ||
if [ $retVal -eq 0 ]; then | ||
snapcraftctl set-version "$EKSCTL_TAG" | ||
snapcraftctl set-grade stable | ||
else | ||
GIT_REV="$(git rev-parse --short HEAD)" | ||
snapcraftctl set-version "$EKSCTL_TAG+$GIT_REV" | ||
snapcraftctl set-grade devel | ||
fi | ||
export GOPATH="$(realpath ../go)" | ||
make install-build-deps | ||
build-snaps: | ||
- go/1.13/stable | ||
build-packages: | ||
- g++ | ||
- gcc | ||
- git | ||
- time | ||
build-environment: | ||
- GOBIN: '$SNAPCRAFT_PART_INSTALL/bin' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#!/bin/bash | ||
|
||
set -o errexit | ||
set -o pipefail | ||
set -o nounset | ||
|
||
function branch_exists() { | ||
git ls-remote --heads origin "${1}" | grep -q "${1}" | ||
} | ||
|
||
function current_branch() { | ||
git rev-parse --abbrev-ref @ | ||
} | ||
|
||
function release_generate() { | ||
go run pkg/version/generate/release_generate.go ${1} | ||
} | ||
|
||
if [[ ! "$(git remote get-url origin)" =~ ^[email protected]:weaveworks/eksctl(\-private)?(\.git)?$ ]] ; then | ||
echo "Invalid origin: $(git remote get-url origin)" | ||
exit 3 | ||
fi | ||
|
||
candidate_for=$(release_generate print-version) | ||
|
||
release_branch="release-${candidate_for%.*}" # e.g.: 0.2.0-rc.0 -> release-0.2 | ||
if ! [[ "${release_branch}" =~ ^release-[0-9]+\.[0-9]+$ ]] ; then | ||
echo "Invalid release branch: ${release_branch}" | ||
exit 3 | ||
fi | ||
|
||
if [ ! "$(current_branch)" = "${release_branch}" ] ; then | ||
echo "Must be on ${release_branch} branch" | ||
exit 5 | ||
fi | ||
|
||
# Ensure local release branch is up-to-date by pulling its latest version from | ||
# origin and fast-forwarding the local branch: | ||
git pull --ff-only origin "${release_branch}" || echo "${release_branch} not found in origin. Will push new branch upstream" | ||
|
||
RELEASE_NOTES_FILE="docs/release_notes/${candidate_for}.md" | ||
|
||
if [[ ! -f "${RELEASE_NOTES_FILE}" ]]; then | ||
echo "Must have release notes ${RELEASE_NOTES_FILE}" | ||
exit 6 | ||
fi | ||
|
||
|
||
# Update eksctl version | ||
full_version=$(release_generate release-candidate) | ||
export RELEASE_GIT_TAG="${full_version}" | ||
git add ./pkg/version/release.go | ||
git add "${RELEASE_NOTES_FILE}" | ||
|
||
m="Tag ${full_version} release candidate" | ||
|
||
git commit --message "${m}" | ||
git push origin "${release_branch}" | ||
git tag --annotate --message "${m}" "${full_version}" | ||
git push origin "${full_version}" | ||
|
||
# Check if we need to bump version in master | ||
git checkout master | ||
if [ ! "$(current_branch)" = master ] ; then | ||
echo "Must be on master branch" | ||
exit 7 | ||
fi | ||
git pull --ff-only origin master | ||
|
||
master_version=$(release_generate print-version) | ||
|
||
# Increase next development iteration if needed | ||
if [ "${master_version}" == "${candidate_for}" ]; then | ||
echo "Preparing for next development iteration" | ||
release_generate development | ||
git add ./pkg/version/release.go | ||
git commit --message "Prepare for next development iteration" | ||
git push origin master:master | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
#!/bin/bash | ||
|
||
set -o errexit | ||
set -o pipefail | ||
set -o nounset | ||
|
||
function branch_exists() { | ||
git ls-remote --heads origin "${1}" | grep -q "${1}" | ||
} | ||
|
||
function current_branch() { | ||
git rev-parse --abbrev-ref @ | ||
} | ||
|
||
function release_generate() { | ||
go run pkg/version/generate/release_generate.go ${1} | ||
} | ||
|
||
if [[ ! "$(git remote get-url origin)" =~ ^[email protected]:weaveworks/eksctl(\-private)?(\.git)?$ ]] ; then | ||
echo "Invalid origin: $(git remote get-url origin)" | ||
exit 3 | ||
fi | ||
|
||
v=$(release_generate print-version) | ||
|
||
release_branch="release-${v%.*}" # e.g.: 0.2.0 -> release-0.2 | ||
if ! [[ "${release_branch}" =~ ^release-[0-9]+\.[0-9]+$ ]] ; then | ||
echo "Invalid release branch: ${release_branch}" | ||
exit 3 | ||
fi | ||
|
||
if [ ! "$(current_branch)" = "${release_branch}" ] ; then | ||
echo "Must be on ${release_branch} branch" | ||
exit 5 | ||
fi | ||
|
||
# Ensure local release branch is up-to-date by pulling its latest version from | ||
# origin and fast-forwarding the local branch: | ||
git pull --ff-only origin "${release_branch}" || echo "${release_branch} not found in origin. Will push new branch upstream" | ||
|
||
RELEASE_NOTES_FILE="docs/release_notes/${v}.md" | ||
if [[ ! -f "${RELEASE_NOTES_FILE}" ]]; then | ||
echo "Must have release notes ${RELEASE_NOTES_FILE}" | ||
exit 6 | ||
fi | ||
|
||
export RELEASE_GIT_TAG="${v}" | ||
|
||
# Update eksctl version by removing the pre-release id | ||
release_generate release | ||
git add ./pkg/version/release.go | ||
git add "${RELEASE_NOTES_FILE}" | ||
|
||
m="Release ${v}" | ||
|
||
git commit --message "${m}" | ||
git push origin "${release_branch}" | ||
|
||
# Create the release tag and push it to start release process | ||
git tag --annotate --message "${m}" --force "latest_release" | ||
git tag --annotate --message "${m}" "${v}" | ||
git push origin "${v}" | ||
|
||
# Update the site by putting everything from master into the docs branch | ||
git push --force origin "${release_branch}":docs | ||
|
||
# Check if need to bump version in master | ||
git checkout master | ||
if [ ! "$(current_branch)" = master ] ; then | ||
echo "Must be on master branch" | ||
exit 7 | ||
fi | ||
git pull --ff-only origin master | ||
|
||
master_version=$(release_generate print-version) | ||
|
||
# Increase next development iteration if needed | ||
if [ "${master_version}" == "${v}" ]; then | ||
echo "Preparing for next development iteration" | ||
release_generate development | ||
git add ./pkg/version/release.go | ||
git commit --message "Prepare for next development iteration" | ||
git push origin master:master | ||
fi | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
// +build tools | ||
|
||
package eksctl | ||
|
||
// Mock imports to enforce their installation by `go mod`. | ||
// See https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module | ||
import ( | ||
// These dependencies are only included to enforce aws-iam-authenticator to use a specific versions. | ||
// aws-iam-authenticator v0.4.0 uses `dep`, causing `go mod` to ignore its dependency files and just to pull | ||
// master versions. Otherwise, build to breaks and is unpredictable | ||
// TODO(fons): get rid of this dependencies once we bump the version of aws-iam-authenticator, | ||
// which now uses go modules | ||
_ "github.com/christopherhein/go-version" | ||
_ "github.com/spf13/viper" | ||
|
||
_ "github.com/dave/jennifer/jen" | ||
_ "github.com/gohugoio/hugo" | ||
_ "github.com/golangci/golangci-lint/cmd/golangci-lint" | ||
_ "github.com/goreleaser/goreleaser" | ||
_ "github.com/kevinburke/go-bindata/go-bindata" | ||
_ "github.com/kubernetes-sigs/aws-iam-authenticator/cmd/aws-iam-authenticator" | ||
_ "github.com/vektra/mockery/cmd/mockery" | ||
_ "github.com/weaveworks/github-release" | ||
_ "golang.org/x/tools/cmd/stringer" | ||
_ "k8s.io/code-generator/cmd/client-gen" | ||
_ "k8s.io/code-generator/cmd/deepcopy-gen" | ||
_ "k8s.io/code-generator/cmd/defaulter-gen" | ||
_ "k8s.io/code-generator/cmd/informer-gen" | ||
_ "k8s.io/code-generator/cmd/lister-gen" | ||
) |