vueサービス側のパッケージングと自動導入
3521 ワード
前回CI環境に構築しましたが、今回はサービス側のパッケージングと導入に使用するスクリプトを書きました.フロントエンドが頻繁にパッケージングする必要がある問題を解決しました.すぐにコードをエンジニアリングライブラリにプッシュし、サービス側は自動的にパッケージングして発表し、テスト担当者はすぐにテストし、できるだけ早く問題を発見しました.
公開の原理:
私はソフトチェーンで発表していません.現在、DevやTest環境でもロールバックを必要としない場所で、パッケージされたファイルを指定したディレクトリの下に直接解凍しているからです.
主なプロセスは次のとおりです. gitlab-runner中.gitlab-ci.yml構成は、異なるブランチを介して、異なる構築スクリプト をトリガする.構築スクリプト最新コードを引き出し、異なる環境に依存するパッケージ をインストールします.打ったパケットをscpを介してDev/Testがいるサーバ に渡す sshによってDev/Testのパブリケーションスクリプトがトリガーされ、主に圧縮パッケージをWebサイトのディレクトリに解凍します. 清掃作業 主に使用するスクリプト
.gitlab-ci.yml
依存およびパッケージのインストール、ファイルの転送、web_deploy_dev.sh
公開スクリプトweb_deploy.sh
はい、上のスクリプトでフロントエンドのVueプロジェクトを迅速に構築できますが、時間の関係で、上のスクリプトの多くの異常性はあまり処理されていません.これは後続の使用で改善され続け、基本的に利用できることを保証しています.テスト担当者に使ってもらうだけでいいです.
公開の原理:
私はソフトチェーンで発表していません.現在、DevやTest環境でもロールバックを必要としない場所で、パッケージされたファイルを指定したディレクトリの下に直接解凍しているからです.
主なプロセスは次のとおりです.
.gitlab-ci.yml
stages:
- deploy-dev
- deploy-test
deploy_develop:
stage: deploy-dev
tags:
- nodejs
- php
script:
- /data/scripts/ci/web_deploy_dev.sh
only:
- dev
deploy_test:
stage: deploy-test
tags:
- nodejs
- php
script:
- /data/scripts/ci/web_deploy_test.sh
only:
- release
依存およびパッケージのインストール、ファイルの転送、web_deploy_dev.sh
##
#
#dev
##
node_path=/data/scripts/node/bin/node
npm_path=/data/scripts/node/bin/npm
product=web_cloudTax_manage_dev #
web_path=/tmp/$product
target_path="${web_path}/dist"
[email protected]:WEB-Developer/cloud_manage.git
function display(){
if [ $? -ne 0 ]
then
exit -999
fi
}
if [ ! -d $web_path ]
then
echo " ${web_path}"
sudo mkdir -p $web_path
echo " :${web_path}"
cd $web_path
sudo git clone $git_path .
display
else
echo " :${web_path}"
cd $web_path
display
fi
sudo chown -R gitlab-runner:gitlab-runner $web_path
if [ -d $target_path ]
then
sudo chown -R gitlab-runner:gitlab-runner $target_path
fi
display
sudo git checkout test-dev
sudo git pull
display
#echo " :${web_path}"
#cd $web_path
echo " dist "
sudo rm -rf $target_path
display
echo " "
node_depency="${npm_path} i"
$node_depency
display
echo " "
build="${npm_path} run build:dev"
$build
display
if [ ! -d "$target_path" ]
then
echo " ,dist "
exit 1
fi
echo " ${target_path}"
cd ${target_path}
echo " /tmp/${product}.tar.gz"
sudo tar cvzf "/tmp/${product}.tar.gz" .
display
echo "======================================"
echo " "
scp /tmp/${product}.tar.gz [email protected]:/tmp
echo " "
display
echo " "
ssh [email protected] /data/scripts/ci/web_deploy.sh $product.tar.gz
display
echo " "
sudo rm -rf "/tmp/${product}.tar.gz"
display
exit 0
公開スクリプトweb_deploy.sh
#! /bin/sh
##
# gitlab-runner ,
##
webpath=/data/vhosts/vhosts.website/test_manage.zc.com
tar_file=$1
tar_path="/tmp/${tar_file}"
if [ ! -f "$tar_path" ]
then
echo " ${tar_path} , "
exit
fi
echo " , ${tar_path} ${webpath}"
cp $tar_path $webpath
echo " "
echo " "
cd $webpath
if [ ! -f "${webpath}/${tar_file}" ]
then
echo " ${webpath}/${tar_file} , "
exit
fi
echo " "
#rm -rf ${webpath}
echo " "
tar xzf "${webpath}/${tar_file}" --overwrite .
echo " , "
chown -R nginx:nginx $webpath
rm "${webpath}/${tar_file}"
はい、上のスクリプトでフロントエンドのVueプロジェクトを迅速に構築できますが、時間の関係で、上のスクリプトの多くの異常性はあまり処理されていません.これは後続の使用で改善され続け、基本的に利用できることを保証しています.テスト担当者に使ってもらうだけでいいです.