mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
updated Jenkinsfile
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
.idea
|
.idea
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
node_modules/
|
||||||
30
Jenkinsfile
vendored
30
Jenkinsfile
vendored
@@ -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
|
||||||
|
"""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user