UNPKG

qspark-deploy

Version:

齐圣园区自动化部署

86 lines (78 loc) 2.87 kB
#!/usr/bin/env node const fs = require("fs"); const path = require('path') const gitDir = path.resolve('./.git'); const gitInfo = require("../git_info"); const axios = require("axios"); const inquirer = require('inquirer'); const autoMerge = require('./merge'); const {LocalStorage} = require('node-localstorage'); const localStorage = new LocalStorage('./node_modules'); const simpleGit = require('simple-git'); let repoDir = path.resolve('../') // 仓库根目录 const simplegit = simpleGit(repoDir) async function getList() { if(localStorage.getItem('__cache-merge')){ autoMerge(localStorage) return } const password = await inquirer.prompt([{ type: 'password', message: '输入密码', name: 'value', choices:['确定','取消'], }]) let branchList = await simplegit.branch({'-r':true}); branchList = branchList.all.map(item=>item.split('origin/')[1]) const branchListChoice = await inquirer.prompt([{ type: 'list', name: 'choice', message: '选择主分支:', default: '园区临时修改', choices: branchList }]) localStorage.setItem('__cache-sourceBranch',branchListChoice.choice) const dirArr = path.resolve('./').split(path.sep) const activeProjectName = dirArr[dirArr.length - 1] const gitInfoScope = gitInfo() const repositoryArr = gitInfoScope[`remote "origin"`].url.split('/') const repositoryName = repositoryArr[repositoryArr.length - 1].split('.git')[0] const res = await axios.get(`http://212.64.24.247:3005/serverTable?password=${password.value}&activeProjectName=${activeProjectName}&repositoryName=${repositoryName}&isTest=0`) if (res.data.code != 1) { console.log(res.data.message); return } const answers = await inquirer.prompt([{ type: 'checkbox', message: '选择部署渠道:', name: 'values', choices: res.data.data.allServes, validate(answer) { if (answer.length < 1) { return '请至少选择一个渠道.'; } return true; } }]) res.data.data.allServes = res.data.data.allServes.filter(item => { return answers.values.includes(item.name) }) const choiceBack = await inquirer.prompt([{ type: 'confirm', name: 'choice', message: '确定部署:', default: true, }]) if(choiceBack.choice){ localStorage.setItem('__cache-merge', JSON.stringify(res.data.data)) autoMerge(localStorage) } } if (!fs.existsSync(gitDir)) { // console.log('这里没有GIT目录') repoDir = path.resolve('../') getList() } else { console.log('GIT目录') repoDir = path.resolve('./') }