Skip to content

Commit

Permalink
cleanup release scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
wr0ngway committed Apr 29, 2021
1 parent d9bbe0a commit dab6015
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 26 deletions.
29 changes: 14 additions & 15 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,27 +76,26 @@ jobs:
- name: Package helm chart
run: |
source <(cloudtruth -e production template get deploy.helm_package_env)
helm package helm/kubetruth
(cd helm && ./generate-helmv2.sh)
helm package helm/tmp/kubetruth
mkdir packaged-chart/
mv kubetruth*.tgz packaged-chart/
mkdir -p tmp/packaged-chart/
(cd tmp/packaged-chart && helm package ../../helm/kubetruth)
./bin/generate-helmv2.sh
(cd tmp/packaged-chart && helm package ../../tmp/helmv2/kubetruth)
maybe_merge=""
if curl -sfL ${HELM_REPO_URL}/index.yaml -o old-index.yaml; then
maybe_merge="--merge old-index.yaml"
if curl -sfL ${HELM_REPO_URL}/index.yaml -o tmp/old-index.yaml; then
maybe_merge="--merge tmp/old-index.yaml"
fi
helm repo index ${maybe_merge} --url ${HELM_REPO_URL} packaged-chart/
helm repo index ${maybe_merge} --url ${HELM_REPO_URL} tmp/packaged-chart/
- name: Deploy helm chart to S3
run: |
source <(cloudtruth -e production template get deploy.aws_credentials_env)
source <(cloudtruth -e production template get deploy.helm_package_env)
atmos -e production auth_exec aws s3 sync packaged-chart/ s3://${BUCKET_NAME}/${BUCKET_PATH}/
atmos -e production auth_exec aws s3 sync tmp/packaged-chart/ s3://${BUCKET_NAME}/${BUCKET_PATH}/
pkgs=""
for pkg in packaged-chart/kubetruth*.tgz; do
pkg=${pkg##*/}
pkg="/${BUCKET_PATH}/${pkg}"
pkgs="${pkgs} ${pkg}"
assets=""
for asset in tmp/packaged-chart/*; do
asset=${asset##*/}
asset="/${BUCKET_PATH}/${asset}"
assets="${assets} ${asset}"
done
atmos -e production auth_exec aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths "/${BUCKET_PATH}/index.yaml" ${pkgs}
atmos -e production auth_exec aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths ${assets}
13 changes: 13 additions & 0 deletions bin/assign_version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash -e

if [[ $# != 1 ]]; then
echo "usage: $(basename $0) version"
exit 1
fi

root_dir=$(cd $(dirname $0)/.. && pwd)
tag=$1

sed -i '' -e "s/^version:.*/version: $tag/" "${root_dir}/helm/kubetruth/Chart.yaml"
sed -i '' -e "s/^appVersion:.*/appVersion: $tag/" "${root_dir}/helm/kubetruth/Chart.yaml"
sed -i '' -e "s/VERSION *=.*/VERSION = \"$tag\"/" "${root_dir}/lib/kubetruth/version.rb"
11 changes: 7 additions & 4 deletions bin/changelog
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
#!/usr/bin/env ruby

require 'bundler'

changelog_file = Dir['CHANGELOG*'].first
entries = ""
sha_url_format = "../../commit/%h"

helper = Bundler::GemHelper.new(Dir.pwd)
current_version = "v#{helper.gemspec.version}"
current_version=ARGV[1]
if current_version.nil?
require 'bundler'
helper = Bundler::GemHelper.new(Dir.pwd)
current_version = "v#{helper.gemspec.version}"
end

starting_version = nil
ending_version = nil, ending_version_name = nil

Expand Down
10 changes: 10 additions & 0 deletions bin/generate-helmv2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash -e

root_dir=$(cd $(dirname $0)/.. && pwd)
helmv2dir="${root_dir}/tmp/helmv2"

mkdir -p "${helmv2dir}"
cp -Rp "${root_dir}/helm/kubetruth" "${helmv2dir}/"
cp -Rp "${root_dir}/helm/helmv2/" "${helmv2dir}/kubetruth/"
sed -i '' -e 's/apiVersion: v2/apiVersion: v1/' "${helmv2dir}/kubetruth/Chart.yaml"
sed -i '' -e 's/version: \([0-9.]*\)/version: \1-helmv2/' "${helmv2dir}/kubetruth/Chart.yaml"
32 changes: 32 additions & 0 deletions bin/release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash -e

if [[ $# != 1 ]]; then
echo "usage: $(basename $0) version"
exit 1
fi

root_dir=$(cd $(dirname $0)/.. && pwd)
cd $root_dir

version=$1

if [[ $(git diff --stat) != '' ]]; then
echo "The git tree is dirty, a clean tree is required to release"
exit 1
fi

current_branch=$(git branch --show-current)
default_branch="master"
if [[ "$current_branch" != "$default_branch" ]]; then
echo "Can only release from the default branch"
exit 1
fi

./bin/assign_version.sh $version
bundle
./bin/changelog $version

echo git ci -m"Updated changelog" .
echo git push
echo git tag -f "v${version}"
echo git push -f --tags
7 changes: 0 additions & 7 deletions helm/generate-helmv2.sh

This file was deleted.

0 comments on commit dab6015

Please sign in to comment.