Skip to content

Commit

Permalink
Merge pull request #25 from NpoolPlatform/hotfix/update-jenkinsfile
Browse files Browse the repository at this point in the history
Hotfix/update jenkinsfile
  • Loading branch information
EntropyPool committed Mar 4, 2024
2 parents 1e129df + 87b5197 commit 537c135
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 105 deletions.
114 changes: 42 additions & 72 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -102,28 +102,13 @@ pipeline {
}
}

stage('Generate docker image for feature') {
when {
expression { BUILD_TARGET == 'true' }
expression { BRANCH_NAME != 'master' }
}
steps {
sh 'make verify-build'
sh(returnStdout: false, script: '''
feature_name=`echo $BRANCH_NAME | awk -F '/' '{ print $2 }'`
DEVELOPMENT=$feature_name DOCKER_REGISTRY=$DOCKER_REGISTRY make generate-docker-images
'''.stripIndent())
}
}

stage('Generate docker image for development') {
when {
expression { BUILD_TARGET == 'true' }
expression { BRANCH_NAME == 'master' }
}
steps {
sh 'make verify-build'
sh 'DEVELOPMENT=development DOCKER_REGISTRY=$DOCKER_REGISTRY make generate-docker-images'
sh 'DOCKER_REGISTRY=$DOCKER_REGISTRY make generate-docker-images'
}
}

Expand All @@ -137,7 +122,7 @@ pipeline {
revlist=`git rev-list --tags --max-count=1`
rc=$?
set -e
if [ 0 -eq $rc ]; then
if [ 0 -eq $rc -a x"$revlist" != x ]; then
tag=`git describe --tags $revlist`
major=`echo $tag | awk -F '.' '{ print $1 }'`
Expand Down Expand Up @@ -178,7 +163,7 @@ pipeline {
revlist=`git rev-list --tags --max-count=1`
rc=$?
set -e
if [ 0 -eq $rc ]; then
if [ 0 -eq $rc -a x"$revlist" != x ]; then
tag=`git describe --tags $revlist`
major=`echo $tag | awk -F '.' '{ print $1 }'`
Expand Down Expand Up @@ -211,7 +196,7 @@ pipeline {
revlist=`git rev-list --tags --max-count=1`
rc=$?
set -e
if [ 0 -eq $rc ]; then
if [ 0 -eq $rc -a x"$revlist" != x ]; then
tag=`git describe --tags $revlist`
major=`echo $tag | awk -F '.' '{ print $1 }'`
Expand Down Expand Up @@ -252,30 +237,7 @@ pipeline {
fi
'''.stripIndent())
sh 'make verify-build'
sh 'DEVELOPMENT=other DOCKER_REGISTRY=$DOCKER_REGISTRY make generate-docker-images'
}
}

stage('Release docker image for feature') {
when {
expression { RELEASE_TARGET == 'true' }
expression { BRANCH_NAME != 'master' }
}
steps {
sh(returnStdout: false, script: '''
feature_name=`echo $BRANCH_NAME | awk -F '/' '{ print $2 }'`
set +e
docker images | grep ledger-middleware | grep $feature_name
rc=$?
set -e
if [ 0 -eq $rc ]; then
TAG=$feature_name DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
fi
images=`docker images | grep entropypool | grep ledger-middleware | grep none | awk '{ print $3 }'`
for image in $images; do
docker rmi $image -f
done
'''.stripIndent())
sh 'DOCKER_REGISTRY=$DOCKER_REGISTRY make generate-docker-images'
}
}

Expand All @@ -285,12 +247,16 @@ pipeline {
}
steps {
sh(returnStdout: false, script: '''
branch=latest
if [ "x$BRANCH_NAME" != "xmaster" ]; then
branch=`echo $BRANCH_NAME | awk -F '/' '{ print $2 }'`
fi
set +e
docker images | grep ledger-middleware | grep latest
docker images | grep ledger-middleware | grep $branch
rc=$?
set -e
if [ 0 -eq $rc ]; then
TAG=latest DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
fi
images=`docker images | grep entropypool | grep ledger-middleware | grep none | awk '{ print $3 }'`
for image in $images; do
Expand All @@ -312,13 +278,13 @@ pipeline {
set -e
if [ 0 -eq $rc -a x"$revlist" != x ]; then
tag=`git describe --tags $revlist`
tag=`git tag --sort=-v:refname | grep [1\\|3\\|5\\|7\\|9]$ | head -n1`
set +e
docker images | grep ledger-middleware | grep $tag
rc=$?
set -e
if [ 0 -eq $rc ]; then
TAG=$tag DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
fi
fi
'''.stripIndent())
Expand All @@ -337,47 +303,41 @@ pipeline {
set -e
if [ 0 -eq $rc -a x"$taglist" != x ]; then
tag=`git describe --abbrev=0 --tags $taglist |grep [0\\|2\\|4\\|6\\|8]$ | head -n1`
tag=`git tag --sort=-v:refname | grep [0\\|2\\|4\\|6\\|8]$ | head -n1`
set +e
docker images | grep ledger-middleware | grep $tag
rc=$?
set -e
if [ 0 -eq $rc ]; then
TAG=$tag DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
DOCKER_REGISTRY=$DOCKER_REGISTRY make release-docker-images
fi
fi
'''.stripIndent())
}
}

stage('Deploy for feature') {
stage('Deploy for development') {
when {
expression { DEPLOY_TARGET == 'true' }
expression { TARGET_ENV ==~ /.*development.*/ }
expression { BRANCH_NAME != 'master' }
}
steps {
sh(returnStdout: false, script: '''
feature_name=`echo $BRANCH_NAME | awk -F '/' '{ print $2 }'`
sed -i "s/ledger-middleware:latest/ledger-middleware:$feature_name/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
branch=latest
if [ "x$BRANCH_NAME" != "xmaster" ]; then
branch=`echo $BRANCH_NAME | awk -F '/' '{ print $2 }'`
fi
sed -i "s/ledger-middleware:latest/ledger-middleware:$branch/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
sed -i "s/uhub.service.ucloud.cn/$DOCKER_REGISTRY/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
TAG=$feature_name make deploy-to-k8s-cluster
if [ "x$REPLICAS_COUNT" == "x" ];then
REPLICAS_COUNT=2
fi
sed -i "s/replicas: 2/replicas: $REPLICAS_COUNT/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
make deploy-to-k8s-cluster
'''.stripIndent())
}
}

stage('Deploy for development') {
when {
expression { DEPLOY_TARGET == 'true' }
expression { TARGET_ENV ==~ /.*development.*/ }
expression { BRANCH_NAME == 'master' }
}
steps {
sh 'sed -i "s/uhub.service.ucloud.cn/$DOCKER_REGISTRY/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml'
sh 'TAG=latest make deploy-to-k8s-cluster'
}
}

stage('Deploy for testing') {
when {
expression { DEPLOY_TARGET == 'true' }
Expand All @@ -389,16 +349,21 @@ pipeline {
revlist=`git rev-list --tags --max-count=1`
rc=$?
set -e
if [ ! 0 -eq $rc ]; then
if [ ! 0 -eq $rc -o x"$revlist" == x]; then
exit 0
fi
tag=`git describe --tags $revlist`
tag=`git tag --sort=-v:refname | grep [1\\|3\\|5\\|7\\|9]$ | head -n1`
git reset --hard
git checkout $tag
sed -i "s/ledger-middleware:latest/ledger-middleware:$tag/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
sed -i "s/uhub.service.ucloud.cn/$DOCKER_REGISTRY/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
TAG=$tag make deploy-to-k8s-cluster
if [ "x$REPLICAS_COUNT" == "x" ];then
REPLICAS_COUNT=2
fi
sed -i "s/replicas: 2/replicas: $REPLICAS_COUNT/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
sed -i "s/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
make deploy-to-k8s-cluster
'''.stripIndent())
}
}
Expand All @@ -414,15 +379,20 @@ pipeline {
taglist=`git rev-list --tags`
rc=$?
set -e
if [ ! 0 -eq $rc ]; then
if [ ! 0 -eq $rc -o x"$revlist" == x]; then
exit 0
fi
tag=`git describe --abbrev=0 --tags $taglist |grep [0\\|2\\|4\\|6\\|8]$ | head -n1`
tag=`git tag --sort=-v:refname | grep [0\\|2\\|4\\|6\\|8]$ | head -n1`
git reset --hard
git checkout $tag
sed -i "s/ledger-middleware:latest/ledger-middleware:$tag/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
sed -i "s/uhub.service.ucloud.cn/$DOCKER_REGISTRY/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
TAG=$tag make deploy-to-k8s-cluster
if [ "x$REPLICAS_COUNT" == "x" ];then
REPLICAS_COUNT=2
fi
sed -i "s/replicas: 2/replicas: $REPLICAS_COUNT/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
sed -i "s/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/g" cmd/ledger-middleware/k8s/02-ledger-middleware.yaml
make deploy-to-k8s-cluster
'''.stripIndent())
}
}
Expand Down
9 changes: 5 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ go.mod:
go mod tidy -compat=1.17

deps:
go get github.com/ugorji/go/codec@latest
go get -d ./...
go mod tidy -compat=1.17

Expand Down Expand Up @@ -54,21 +55,21 @@ verify-spelling: ## Verifies spelling.

gen-ent:
go install entgo.io/ent/cmd/ent@v0.11.2
go run -mod=mod entgo.io/ent/cmd/ent generate --feature entql,sql/lock,sql/execquery,sql/upsert,privacy,schema/snapshot ./pkg/db/ent/schema
go run -mod=mod entgo.io/ent/cmd/ent generate --feature entql,sql/lock,sql/execquery,sql/upsert,privacy,schema/snapshot,sql/modifier ./pkg/db/ent/schema

all: verify-build

${SERVICES}:
${REPO_ROOT}/hack/verify-build.sh $@

${SERVICEIMAGES}:
${REPO_ROOT}/hack/generate-docker-image.sh $(@:%-image=%) $(DEVELOPMENT) $(DOCKER_REGISTRY)
${REPO_ROOT}/hack/generate-docker-image.sh $(@:%-image=%) $(DOCKER_REGISTRY)

${SERVICEIMAGERELEASES}:
${REPO_ROOT}/hack/release-docker-image.sh $(@:%-release=%) $(TAG) $(DOCKER_REGISTRY)
${REPO_ROOT}/hack/release-docker-image.sh $(@:%-release=%) $(DOCKER_REGISTRY)

${SERVICEK8SDEPLOYS}:
${REPO_ROOT}/hack/deploy-to-k8s-cluster.sh $(@:%-k8s-deploy=%) $(TAG)
${REPO_ROOT}/hack/deploy-to-k8s-cluster.sh $(@:%-k8s-deploy=%)

generate-docker-images: ${SERVICES} ${SERVICEIMAGES}
release-docker-images: ${generate-docker-images} ${SERVICEIMAGERELEASES}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.11.0 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/ugorji/go/codec v1.2.8 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
github.com/zclconf/go-cty v1.8.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0 // indirect
go.opentelemetry.io/otel v1.8.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -465,8 +465,8 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/ugorji/go v0.0.0-20190204201341-e444a5086c43/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
github.com/ugorji/go/codec v1.2.8 h1:sgBJS6COt0b/P40VouWKdseidkDgHxYGm0SAglUHfP0=
github.com/ugorji/go/codec v1.2.8/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/urfave/cli/v2 v2.4.0 h1:m2pxjjDFgDxSPtO8WSdbndj17Wu2y8vOT86wE/tjr+I=
github.com/urfave/cli/v2 v2.4.0/go.mod h1:NX9W0zmTvedE5oDoOMs2RTC8RvdK98NTYZE5LbaEYPg=
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
Expand Down
21 changes: 16 additions & 5 deletions hack/deploy-to-k8s-cluster.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,23 @@ if git_status=$(git status --porcelain --untracked=no 2>/dev/null) && [[ -z "${g
git_tree_state=clean
fi

version=latest

## For testing or production environment, pass the second variable
if [ "x" != "x$2" ]; then
version=$2
set +e
## Get tag we're on
# version=`git describe --tags --abbrev=0`
version=`git describe --exact-match --tags $(git log -n1 --pretty='%h')`
if [ ! $? -eq 0 ]; then
## branch=`git branch --show-current` // Only for git 2.22^
branch=`git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD`
if [ "x$branch" == "xmaster" ]; then
version=latest
else
version=`echo $branch | awk -F '/' '{print $2}'`
fi
## Do we need commit ?
# commit=`git rev-parse HEAD`
# version=$version-$commit
fi
set -e

service_name=$1

Expand Down
30 changes: 16 additions & 14 deletions hack/generate-docker-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,30 @@ OS="${PLATFORM%/*}"
ARCH=$(basename "$PLATFORM")

if git_status=$(git status --porcelain --untracked=no 2>/dev/null) && [[ -z "${git_status}" ]]; then
git_tree_state=clean
git_tree_state=clean
fi

set +e
version=`git describe --tags --abbrev=0`
## Get tag we're on
# version=`git describe --tags --abbrev=0`
version=`git describe --exact-match --tags $(git log -n1 --pretty='%h')`
if [ ! $? -eq 0 ]; then
branch=`git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD`
if [ "x$branch" == "xmaster" ]; then
version=latest
else
version=`echo $branch | awk -F '/' '{print $2}'`
fi
## Do we need commit ?
# commit=`git rev-parse HEAD`
# version=$version-$commit
fi
set -e

service_name=$1
## For development environment, pass the second variable
if [ "xdevelopment" == "x$2" ]; then
version=latest
elif [ "xother" != "x$2" ]; then
version=$2
fi

registry=uhub.service.ucloud.cn

if [ "x" != $3 ]; then
registry=$3
if [ "x" != $2 ]; then
registry=$2
fi

echo "Generate docker image for $PLATFORM -- $version"
Expand All @@ -51,7 +53,7 @@ cd $OUTPUT/.${service_name}.tmp

user=`whoami`
if [ "$user" == "root" ]; then
docker build -t $registry/entropypool/$service_name:$version .
docker build -t $registry/entropypool/$service_name:$version .
else
sudo docker build -t $registry/entropypool/$service_name:$version .
sudo docker build -t $registry/entropypool/$service_name:$version .
fi
Loading

0 comments on commit 537c135

Please sign in to comment.