create automated time-to-k8s benchmarks on release
parent
5331cbeb8f
commit
599e7c49e9
|
@ -0,0 +1,20 @@
|
|||
name: "time-to-k8s benchmark"
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened]
|
||||
# release:
|
||||
# types: [released]
|
||||
jobs:
|
||||
benchmark:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout submodules
|
||||
run: git submodule update --init
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.16.5
|
||||
stable: true
|
||||
- name: Benchmark
|
||||
run: |
|
||||
./hack/benchmark/time-to-k8s/time-to-k8s.sh ${{ secrets.MINIKUBE_BOT_PAT }}
|
|
@ -1,6 +1,6 @@
|
|||
[submodule "site/themes/docsy"]
|
||||
path = site/themes/docsy
|
||||
url = https://github.com/google/docsy.git
|
||||
[submodule "hack/benchmark/time-to-k8s/time-to-k8s"]
|
||||
path = hack/benchmark/time-to-k8s/time-to-k8s
|
||||
[submodule "hack/benchmark/time-to-k8s/time-to-k8s-repo"]
|
||||
path = hack/benchmark/time-to-k8s/time-to-k8s-repo
|
||||
url = https://github.com/tstromberg/time-to-k8s.git
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
set -e
|
||||
|
||||
install_kind() {
|
||||
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
|
||||
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
|
||||
chmod +x ./kind
|
||||
sudo mv ./kind /usr/local
|
||||
}
|
||||
|
@ -31,31 +31,58 @@ install_minikube() {
|
|||
sudo install ./out/minikube /usr/local/bin/minikube
|
||||
}
|
||||
|
||||
install_gh() {
|
||||
export access_token="$1"
|
||||
|
||||
# Make sure gh is installed and configured
|
||||
./hack/jenkins/installers/check_install_gh.sh
|
||||
}
|
||||
|
||||
config_git() {
|
||||
git config user.name "minikube-bot"
|
||||
git config user.email "minikube-bot@google.com"
|
||||
}
|
||||
|
||||
create_branch() {
|
||||
git checkout -b addTimeToK8s"$1"
|
||||
}
|
||||
|
||||
run_benchmark() {
|
||||
( cd ./hack/benchmark/time-to-k8s/time-to-k8s/ &&
|
||||
pwd
|
||||
( cd ./hack/benchmark/time-to-k8s/time-to-k8s-repo/ &&
|
||||
git submodule update --init &&
|
||||
go run . --config local-kubernetes.yaml --iterations 5 --output output.csv )
|
||||
go run . --config local-kubernetes.yaml --iterations 1 --output output.csv )
|
||||
}
|
||||
|
||||
generate_chart() {
|
||||
go run ./hack/benchmark/time-to-k8s/chart.go --csv ./hack/benchmark/time-to-k8s/time-to-k8s/output.csv --output ./site/static/images/benchmarks/timeToK8s/"$1".png
|
||||
go run ./hack/benchmark/time-to-k8s/chart.go --csv ./hack/benchmark/time-to-k8s/time-to-k8s-repo/output.csv --output ./site/static/images/benchmarks/timeToK8s/"$1".png
|
||||
}
|
||||
|
||||
create_page() {
|
||||
printf -- "---\ntitle: \"%s Benchmark\"\nlinkTitle: \"%s Benchmark\"\nweight: 1\n---\n\n![time-to-k8s](/images/benchmarks/timeToK8s/%s.png)\n" "$1" "$1" "$1" > ./site/content/en/docs/benchmarks/timeToK8s/"$1".md
|
||||
}
|
||||
|
||||
commit_chart() {
|
||||
commit_changes() {
|
||||
git add ./site/static/images/benchmarks/timeToK8s/"$1".png ./site/content/en/docs/benchmarks/timeToK8s/"$1".md
|
||||
git commit -m 'update time-to-k8s chart'
|
||||
git commit -m "add time-to-k8s benchmark for $1"
|
||||
}
|
||||
|
||||
create_pr() {
|
||||
git remote add minikube-bot https://minikube-bot:"$2"@github.com/minikube-bot/minikube.git
|
||||
git push -u minikube-bot addTimeToK8s"$1"
|
||||
gh pr create --repo kubernetes/minikube --base master --title "Add time-to-k8s benchmark for $1" --body "Updating time-to-k8s benchmark as part of the release process"
|
||||
}
|
||||
|
||||
install_kind
|
||||
install_k3d
|
||||
install_minikube
|
||||
VERSION=$(minikube version --short)
|
||||
install_gh "$1"
|
||||
config_git
|
||||
|
||||
VERSION=$(minikube version --short)
|
||||
create_branch "$VERSION"
|
||||
run_benchmark
|
||||
generate_chart "$VERSION"
|
||||
create_page "$VERSION"
|
||||
commit_chart "$VERSION"
|
||||
commit_changes "$VERSION"
|
||||
create_pr "$VERSION" "$1"
|
||||
|
|
Loading…
Reference in New Issue