Skip to content

Commit

Permalink
Restore inadvertently deleted files
Browse files Browse the repository at this point in the history
This partially reverts commit 06cf5a4.
  • Loading branch information
cPu1 committed Mar 16, 2020
1 parent 33c318a commit 9b7f90e
Show file tree
Hide file tree
Showing 4 changed files with 245 additions and 0 deletions.
51 changes: 51 additions & 0 deletions snap/snapcraft.yaml
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'
79 changes: 79 additions & 0 deletions tag-release-candidate.sh
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
85 changes: 85 additions & 0 deletions tag-release.sh
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

30 changes: 30 additions & 0 deletions tools.go
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"
)

0 comments on commit 9b7f90e

Please sign in to comment.