科尔多瓦和 Gitlab CI

Cordova and Gitlab CI

我目前使用 GitLab 作为 Cordova 项目的主要存储库,并使用 PhoneGap Build 进行持续集成,但它们不能很好地协同工作,据我所知,GitLab 有自己的构建器。

能否请您告诉我是否存在这样的功能,如果存在,我应该使用哪些功能?

GitLab 确实包含它自己的持续集成。这以前仅在企业版中可用,但现在在社区版中也可用。

信息:https://about.gitlab.com/gitlab-ci/

GitLab CI 文档:http://doc.gitlab.com/ce/ci/README.html

希望对您有所帮助。

据说,它应该可以通过一些内置的方式实现。

"Just a quick update, we have added the ability to link your PhoneGap Build account to an existing BitBucket or GitLab account. This will allow you to build your private BitBucket or GitLab hosted repository without having to resort to insecure basic authentication (yes people are doing that!)." (http://phonegap.com/blog/2016/04/11/bitbucket-and-gitlab-repo-oauth-supported/)

但是我找不到这个集成,所以我写了一个脚本来自动从 Gitlab 的 CI、管道到 Phonegap 的部署。以下是设置步骤:

  1. npm install -D phonegap-build
  2. 有一个使用 phonegap-build 的脚本来登录并在您存储库的 phonegap 云中构建项目。

例如下面的代码:

#!/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 }
  1. 设置 Pipelines,即 gitlab CI,到 运行 你的部署脚本。使用名为 .gitlab-ci.yml 的文件执行此操作,并让它指定所需的作业。我在引用 docs:

    时写了我的

    变量: GIT_DEPTH: "1" 开发人员: 图片:node:latest 阶段:部署 allow_failure: 错误 脚本: - npm 安装 - ./scripts/gitlab-ci_deploy.js

  2. git commit && git push 它会自动将项目部署到 phonegap。