.net core jenkins持續整合
阿新 • • 發佈:2018-12-26
執行 Shell
pwd ls echo ${PATH} whoami which dotnet dotnet --info dotnet --version echo '============================begin restore=======================================' dotnet restore echo '============================begin build=========================================' #dotnet build -c:Release --no-incremental rm -rf ${WORKSPACE}/jenkins_publish mkdir ${WORKSPACE}/jenkins_publish dotnet publish -r centos.7-x64 -c:Release -o ${WORKSPACE}/jenkins_publish #把服務啟動指令碼拷貝到打包目錄 if [ ! -f "${WORKSPACE}/jenkins_publish/project.service" ]; then touch ${WORKSPACE}/jenkins_publish/project.service #echo "123" > ${WORKSPACE}/jenkins_publish/project.service #生成啟動服務 echo "[Unit] Description=.NET Core ProjectService [Service] WorkingDirectory=/data/dotnet_web/${JOB_NAME} ExecStart=/usr/bin/dotnet /data/dotnet_web/${JOB_NAME}/Web.dll Restart=always RestartSec=10 SyslogIdentifier=ProjectApp User=root Environment=ASPNETCORE_ENVIRONMENT=Test [Install] WantedBy=multi-user.target" > ${WORKSPACE}/jenkins_publish/project.service fi echo '============================釋出到伺服器==========================================' #cp -r ${WORKSPACE}/jenkins_publish/* /home/netcore/project/ #建立打包路徑,並對當前程式碼進行打包 if [ ! -d "${WORKSPACE}/tar" ]; then mkdir -p ${WORKSPACE}/tar fi #清空tar目錄下檔案 rm -rf ${WORKSPACE}/tar/${JOB_NAME}-*.tar.gz cd ${WORKSPACE}/jenkins_publish tar -zcf ${WORKSPACE}/tar/${JOB_NAME}-${BUILD_ID}.tar.gz ./* --exclude=./tar --exclude=./.git --exclude=./.gitignore
SSH Publishers
#建立專案版本目錄 if [ ! -d "/data/release/${JOB_NAME}/${BUILD_ID}" ]; then mkdir -p /data/release/${JOB_NAME}/${BUILD_ID} fi #解壓包 tar -zxf /data/release/${JOB_NAME}/${JOB_NAME}-${BUILD_ID}.tar.gz -C /data/release/${JOB_NAME}/${BUILD_ID}/ --exclude=./.git* #刪除壓縮包 rm -rf /data/release/${JOB_NAME}/${JOB_NAME}-${BUILD_ID}.tar.gz #更新web軟連線 rm -rf /data/dotnet_web/${JOB_NAME} ln -sf /data/release/${JOB_NAME}/${BUILD_ID} /data/dotnet_web/${JOB_NAME} #修改站點屬主和許可權 chown root:root -R /data/dotnet_web/${JOB_NAME}/ #刪除/data/release 下的多餘版本目錄(預設設定保留2版) cd /data/release/${JOB_NAME}/ if [ "ls /data/release${JOB_NAME}/ | wc -l" > "${keep_num}" ]; then ls -lt | awk '{if($9<=("${BUILD_ID}"-"${keep_num}")){print $9}}' | xargs rm -rf fi #部署啟動服務 if [ ! -f "/usr/lib/systemd/system/project.service" ]; then cp /data/dotnet_web/${JOB_NAME}/project.service /usr/lib/systemd/system/ fi systemctl restart project.service