add build.sh && build-web.sh

This commit is contained in:
hardy 2023-06-03 09:00:08 +08:00
parent 14ed65fa94
commit f992b56967
No known key found for this signature in database
GPG Key ID: D1ED7F7A9ED520C3
3 changed files with 86 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
/logs/ /logs/
web
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
node_modules node_modules

8
build-web.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
WORKBASE=/home/jenkins/go/src/infini.sh/console
if [ ! -d $WORKBASE/web ]; then
git clone ssh://git@git.infini.ltd:64221/infini/console-ui.git web
fi
cd $WORKBASE/web && git pull origin master && git stash
cnpm install && cnpm run build

77
build.sh Normal file
View File

@ -0,0 +1,77 @@
#!/bin/bash
#init
PNAME=console
WORKBASE=/home/jenkins/go/src/infini.sh
WORKDIR=$WORKBASE/$PNAME
export DOCKER_CLI_EXPERIMENTAL=enabled
#clean all
cd $WORKSPACE && git clean -fxd
#pull code
cd $WORKDIR && git clean -fxd
git stash && git pull origin master
#build
make clean config build-linux
make config build-arm
make config build-darwin
make config build-win
GOROOT="/infini/go-pkgs/go-loongarch" GOPATH="/home/jenkins/go" make build-linux-loong64
#copy-configs
cp -rf $WORKBASE/framework/LICENSE $WORKDIR/bin && cat $WORKBASE/framework/NOTICE $WORKDIR/NOTICE > $WORKDIR/bin/NOTICE
cd $WORKDIR/bin
for t in 386 amd64 arm64 armv5 armv6 armv7 loong64 mips mips64 mips64le mipsle riscv64 ; do
echo "package-linux-$t"
tar zcf ${WORKSPACE}/$PNAME-$VERSION-$BUILD_NUMBER-linux-$t.tar.gz "${PNAME}-linux-$t" $PNAME.yml LICENSE NOTICE
done
for t in mac-amd64 mac-arm64 windows-amd64 windows-386 ; do
echo "package-$t"
cd $WORKDIR/bin && zip -qr ${WORKSPACE}/$PNAME-$VERSION-$BUILD_NUMBER-$t.zip $PNAME-$t $PNAME.yml LICENSE NOTICE
done
#build image & push
for t in amd64 arm64 ; do
cat <<EOF>Dockerfile
FROM --platform=linux/$t alpine:3.16.5
MAINTAINER "hardy <luohoufu@gmail.com>"
ARG APP_NAME=$PNAME
ARG APP_HOME=/opt/\${APP_NAME}
ENV APP=\${APP_NAME}
WORKDIR \${APP_HOME}
COPY ["$PNAME-linux-$t", "$PNAME.yml", "\${APP_HOME}/"]
CMD ["/opt/$PNAME/${PNAME}-linux-$t"]
EOF
docker buildx build -t infinilabs/$PNAME-$t:latest --platform=linux/$t -o type=docker .
docker tag infinilabs/$PNAME-$t:latest infinilabs/$PNAME-t:$VERSION-$BUILD_NUMBE
docker push infinilabs/$PNAME-$t:latest
docker push infinilabs/$PNAME-$t:$VERSION-$BUILD_NUMBER
done
#composite tag
docker buildx imagetools create -t infinilabs/$PNAME:latest \
infinilabs/$PNAME-arm64:latest \
infinilabs/$PNAME-amd64:latest
docker buildx imagetools create -t infinilabs/$PNAME:$VERSION-$BUILD_NUMBER \
infinilabs/$PNAME-arm64:$VERSION-$BUILD_NUMBER \
infinilabs/$PNAME-amd64:$VERSION-$BUILD_NUMBER
#git reset
cd $WORKSPACE && git reset --hard
cd $WORKDIR && git reset --hard
#clean weeks ago image
NEEDCLEN=$(docker images |grep "$PNAME" |grep "weeks ago")
if [ ! -z "$NEEDCLEN" ]; then
docker images |grep "$PNAME" |grep "weeks ago" |awk '{print $3}' |xargs docker rmi
fi