【发布时间】:2016-05-05 10:22:32
【问题描述】:
我目前使用 GitLab 作为 Cordova 项目的主要存储库,并使用 PhoneGap Build 进行持续集成,但它们不能很好地协同工作,据我所知 GitLab 有自己的构建器。
您能否告诉我是否存在这样的功能,如果存在,我应该使用哪些功能?
【问题讨论】:
标签: cordova continuous-integration gitlab gitlab-ci
我目前使用 GitLab 作为 Cordova 项目的主要存储库,并使用 PhoneGap Build 进行持续集成,但它们不能很好地协同工作,据我所知 GitLab 有自己的构建器。
您能否告诉我是否存在这样的功能,如果存在,我应该使用哪些功能?
【问题讨论】:
标签: cordova continuous-integration gitlab gitlab-ci
据推测,它应该可以通过一些内置方式实现。
“只是一个快速更新,我们添加了将您的 PhoneGap Build 帐户链接到现有 BitBucket 或 GitLab 帐户的功能。这将允许您构建您的私有 BitBucket 或 GitLab 托管存储库,而无需求助于不安全的基本身份验证 (是的,人们正在这样做!)。” (http://phonegap.com/blog/2016/04/11/bitbucket-and-gitlab-repo-oauth-supported/)
但是我找不到这个集成,我写了一个脚本来自动化从 Gitlab 的 CI、Pipelines 到 Phonegap 的部署。以下是设置的步骤:
npm install -D phonegap-build例如下面的代码:
#!/usr/bin/env node
var phonegapbuild = require('phonegap-build')
console.log('Logging in...')
phonegapbuild.login({
username: process.env.PHONEGAP_BUILD_USERNAME,
password: process.env.PHONEGAP_BUILD_PASSWORD
}, function(e) {
console.log('logged in!')
var options = { platforms: ['android'], }
if(e) error(e)
else {
console.log('Calling `build` function...')
phonegapbuild.build(options, function(e) {
if (e) error(e)
else console.log('Success!')
})
}
})
const error = (err) => { console.error(err); process.exitCode = 1 }
设置Pipelines,即 gitlab CI,以运行您的部署脚本。使用名为.gitlab-ci.yml 的文件执行此操作,并让它指定所需的作业。我在引用docs时写了我的:
变量: GIT_DEPTH:“1” 开发: 图片:节点:最新 阶段:部署 允许失败:假 脚本: - npm 安装 - ./scripts/gitlab-ci_deploy.js
git commit && git push,它会自动将项目部署到phonegap。
【讨论】:
GitLab 确实包含它自己的持续集成。这以前仅在企业版中可用,但现在也可在社区版中使用。
信息:https://about.gitlab.com/gitlab-ci/
GitLab CI 文档:http://doc.gitlab.com/ce/ci/README.html
我希望这会有所帮助。
【讨论】: