blob: fabd577038f844bd704a8d389367b6196f23055f [file] [log] [blame]
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
echo "GOPATH is "${GOPATH}
export BUILD_DIR=$(cd "$(dirname "$0")"; pwd)
export PROJECT_DIR=$(dirname ${BUILD_DIR})
export CGO_ENABLED=${CGO_ENABLED:-0} # prevent to compile cgo file
export GO_EXTLINK_ENABLED=${GO_EXTLINK_ENABLED:-0} # do not use host linker
export GO_LDFLAGS=${GO_LDFLAGS:-" -s -w"}
echo "downloading dependencies"
cd ${PROJECT_DIR}
GO111MODULE=on go mod vendor
version="latest"
release_dir=${PROJECT_DIR}/release/kie
if [ -z "${VERSION}" ]; then
echo "missing VERSION env, use ${version} as release version"
else
version=${VERSION}
fi
if [ -d ${release_dir} ]; then
rm -rf ${release_dir}
fi
mkdir -p ${release_dir}/conf
export GIT_COMMIT=$(git rev-parse HEAD | cut -b 1-7)
echo "build from ${GIT_COMMIT}"
writeConfig() {
echo "write chassis config..."
cat <<EOM >${release_dir}/conf/chassis.yaml
servicecomb:
registry:
disabled: true
protocols:
rest:
listenAddress: 127.0.0.1:30110
handler:
chain:
Provider:
default: access-log,monitoring,jwt,track-handler,traffic-marker,rate-limiter
EOM
echo "write miroservice config..."
cat <<EOM >${release_dir}/conf/microservice.yaml
servicecomb:
service:
name: servicecomb-kie
version: ${version}
EOM
cat <<EOM >${release_dir}/conf/kie-conf.yaml
db:
kind: mongo
uri: mongodb://root:root@127.0.0.1:27017/servicecomb
poolSize: 10
ssl: false
sslCA:
sslCert:
EOM
}
writeConfig
cp ${PROJECT_DIR}/licenses/LICENSE ${PROJECT_DIR}/licenses/NOTICE ${release_dir}
cp -r ${PROJECT_DIR}/licenses ${release_dir}
rm -f ${release_dir}/licenses/LICENSE ${release_dir}/licenses/NOTICE
cd ${release_dir}
component="apache-servicecomb-kie"
buildAndPackage() {
GOOS=$1
GOARCH=$2
echo "building & packaging ${GOOS} ${GOARCH}..."
if [ "$GOOS" = "windows" ]; then
GOOS=${GOOS} GOARCH=${GOARCH} go build --ldflags "${GO_LDFLAGS}" -o ${release_dir}/kie.exe github.com/apache/servicecomb-kie/cmd/kieserver
else
GOOS=${GOOS} GOARCH=${GOARCH} go build --ldflags "${GO_LDFLAGS}" -o ${release_dir}/kie github.com/apache/servicecomb-kie/cmd/kieserver
fi
if [ $? -eq 0 ]; then
if [ "$GOOS" = "windows" ]; then
tar zcf "$component-$version-${GOOS}-${GOARCH}.tar.gz" conf kie.exe LICENSE NOTICE licenses
else
tar zcf "$component-$version-${GOOS}-${GOARCH}.tar.gz" conf kie LICENSE NOTICE licenses
fi
else
echo -e "\033[31m build ${GOOS}-${GOARCH} fail !! \033[0m"
fi
}
for GOOS in 'windows' 'darwin' 'linux'; do
buildAndPackage $GOOS "amd64"
done
buildAndPackage "linux" "arm64"