updated Jenkinsfile

This commit is contained in:
Marvin Zhang
2019-06-21 22:33:53 +08:00
parent b503447036
commit f08b2202ab
5 changed files with 25 additions and 23 deletions

View File

@@ -1,3 +1,4 @@
.idea .idea
logs logs
*.log *.log
node_modules/

30
Jenkinsfile vendored
View File

@@ -6,17 +6,12 @@ pipeline {
} }
environment { environment {
HOME = '/home/yeqing'
NODE_HOME = '/home/yeqing/.nvm/versions/node/v8.12.0'
ROOT_DIR = "/home/yeqing/jenkins_home/workspace/crawlab_${GIT_BRANCH}"
PYTHON_HOME = '/home/yeqing/.pyenv/shims'
} }
stages { stages {
stage('Setup') { stage('Setup') {
steps { steps {
echo "Running Setup..." echo "Running Setup..."
// sh '. /home/yeqing/.profile'
script { script {
if (env.GIT_BRANCH == 'develop') { if (env.GIT_BRANCH == 'develop') {
env.MODE = 'test' env.MODE = 'test'
@@ -28,18 +23,12 @@ pipeline {
} }
} }
} }
stage('Build Frontend') { stage('Build') {
steps { steps {
echo "Building frontend..." echo "Building..."
// sh "${NODE_HOME}/bin/node ${NODE_HOME}/bin/npm install -g yarn pm2 --registry=http://registry.npm.taobao.org/" sh """
sh "cd ${ROOT_DIR}/frontend && ${NODE_HOME}/bin/node ${NODE_HOME}/bin/yarn install --registry=http://registry.npm.taobao.org/ --scripts-prepend-node-path=${NODE_HOME}/bin/node" docker build -t crawlab:latest .
sh "cd ${ROOT_DIR}/frontend && ${NODE_HOME}/bin/node ${ROOT_DIR}/frontend/node_modules/.bin/vue-cli-service build --mode=${MODE}" """
}
}
stage('Build Backend') {
steps {
echo "Building backend..."
sh "${PYTHON_HOME}/pip install -r ${ROOT_DIR}/crawlab/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple"
} }
} }
stage('Test') { stage('Test') {
@@ -50,7 +39,14 @@ pipeline {
stage('Deploy') { stage('Deploy') {
steps { steps {
echo 'Deploying....' echo 'Deploying....'
sh "${NODE_HOME}/bin/node ${NODE_HOME}/bin/pm2 reload all" sh """
docker stop crawlab | true
docker run -d --rm --restart always --name crawlab \
-p 8080:8080 \
-p 8000:8000 \
-v /home/yeqing/.env.production:/opt/crawlab/frontend/.env.production \
-v /home/yeqing/config.py:/opt/crawlab/crawlab/config/config.py
"""
} }
} }
} }

View File

@@ -6,7 +6,6 @@ from flask import Flask
from flask_cors import CORS from flask_cors import CORS
from flask_restful import Api from flask_restful import Api
# from flask_restplus import Api # from flask_restplus import Api
from gevent import monkey, pywsgi
file_dir = os.path.dirname(os.path.realpath(__file__)) file_dir = os.path.dirname(os.path.realpath(__file__))
root_path = os.path.abspath(os.path.join(file_dir, '.')) root_path = os.path.abspath(os.path.join(file_dir, '.'))
@@ -104,5 +103,4 @@ if not os.path.exists(PROJECT_LOGS_FOLDER):
if __name__ == '__main__': if __name__ == '__main__':
# run app instance # run app instance
server = pywsgi.WSGIServer((FLASK_HOST, FLASK_PORT), app) app.run(host=FLASK_HOST, port=FLASK_PORT, threaded=True)
server.serve_forever()

View File

@@ -3,7 +3,7 @@ services:
master: master:
image: tikazyq/crawlab:latest image: tikazyq/crawlab:latest
container_name: crawlab container_name: crawlab
volumns: volumes:
- /home/yeqing/config.py:/opt/crawlab/crawlab/config/config.py # 后端配置文件 - /home/yeqing/config.py:/opt/crawlab/crawlab/config/config.py # 后端配置文件
- /home/yeqing/.env.production:/opt/crawlab/frontend/.env.production # 前端配置文件 - /home/yeqing/.env.production:/opt/crawlab/frontend/.env.production # 前端配置文件
ports: ports:

View File

@@ -16,7 +16,14 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('Spider')" prop="spider_id" required> <el-form-item :label="$t('Spider')" prop="spider_id" required>
<el-select v-model="scheduleForm.spider_id" filterable> <el-select v-model="scheduleForm.spider_id" filterable>
<el-option v-for="op in spiderList" :key="op._id" :value="op._id" :label="op.name"></el-option> <el-option
v-for="op in spiderList"
:key="op._id"
:value="op._id"
:label="op.name"
:disabled="!op.cmd || !op.deploy_ts"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('Cron')" prop="cron" :rules="cronRules" required> <el-form-item :label="$t('Cron')" prop="cron" :rules="cronRules" required>