miniprogram-ci
miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。官方地址文档地址
const ci = require('miniprogram-ci')
let version = process.argv.slice(2)[0] //接收命令行传入版本参数
let desc = process.argv.slice(3)[0] //接收命令行传入描述参数
if (!version) version = 'v1.0.0'
if (!desc) desc = new Date() + 'Robot上传'
const project = new ci.Project({
appid: '******', //你的APPID
type: 'miniProgram',
projectPath: process.cwd() + '/dist/build/mp-weixin', //项目路径
privateKeyPath: '/app/mall/private.******.key', //私钥的路径
ignores: ['node_modules/**/*'],
})
ci.upload({
project,
version,
desc,
setting: {
es6: true,
},
}).then(res => {
console.log(res)
console.log('上传成功')
}).catch(error => {
if (error.errCode == -1) {
console.log('上传成功')
}
console.log(error)
console.log('上传失败')
process.exit(-1)
})
gitlab-ci
gitlab-ci 是git官方提供的的自动化部署持续集成工具。
before_script:
- date
- npm -v
- node -v
- npm install
- cp .env.example .env
after_script:
- date
stages:
- deploy
cache:
paths:
- ./node_modules
deploy:
stage: deploy
except:
- tags
script:
- npm run build
- VERSION=`node -p "require('./package.json').version"` #获取package.json版本号
- DESCRIPTION=`git log -1 --pretty=format:%s` #获取最近一次git提交信息
- node ./tool/upload.js $VERSION $DESCRIPTION #执行
production:
stage: deploy
only:
- tags
script:
- npm run build
- DESCRIPTION=`git log -1 --pretty=format:%s`
- node ./tool/upload.js $CI_BUILD_TAG $DESCRIPTION