Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在cypress项目的gitlab管道中连接到openVpn_Javascript_Gitlab Ci_Cypress_Openvpn_Cypress Cucumber Preprocessor - Fatal编程技术网

Javascript 如何在cypress项目的gitlab管道中连接到openVpn

Javascript 如何在cypress项目的gitlab管道中连接到openVpn,javascript,gitlab-ci,cypress,openvpn,cypress-cucumber-preprocessor,Javascript,Gitlab Ci,Cypress,Openvpn,Cypress Cucumber Preprocessor,我在做一个柏树项目。我已经在GitLab建立了一个管道。 我的应用程序只能在通过开放VPN连接的专用网络上工作 有人能告诉我如何将其添加到.gitlab-ci.yml文件中吗 My.gitlab-ci.yml是: image: cypress/base:10 stages: - test test: stage: test script: - npm install - npm run test 我的package.json如下: { "name&q

我在做一个柏树项目。我已经在GitLab建立了一个管道。 我的应用程序只能在通过开放VPN连接的专用网络上工作

有人能告诉我如何将其添加到.gitlab-ci.yml文件中吗

My.gitlab-ci.yml是:

image: cypress/base:10

stages:
  - test
test:
  stage: test
  script:
    - npm install
    - npm run test
我的package.json如下:

{
  "name": "cypresspackage",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "clean:reports": "rm -R -f cypress/reports && mkdir cypress/reports && mkdir cypress/reports/mochareports",
    "pretest": "npm run clean:reports",
    "scripts": "cypress run --spec cypress/integration/dummy.feature",
    "combine-reports": "mochawesome-merge ./cypress/reports/mocha/*.json > cypress/reports/mochareports/report.json",
    "generate-report": "marge cypress/reports/mochareports/report.json -f report -o cypress/reports/mochareports",
    "report:copyScreenshots": "cp -r cypress/screenshots cypress/reports/mochareports/assets",
    "posttest": "npm run report:copyScreenshots && npm run combine-reports && npm run generate-report",
    "test": "npm run scripts || npm run posttest"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "cypress": "^6.3.0",
    "cypress-audit": "^0.3.0",
    "cypress-cucumber-preprocessor": "^4.0.1",
    "cypress-multi-reporters": "^1.4.0",
    "cypress-xpath": "^1.6.2",
    "mocha": "^8.2.1",
    "mochawesome": "^6.2.1",
    "mochawesome-merge": "^4.2.0",
    "mochawesome-report-generator": "^5.1.0"
  },
  "dependencies": {
    "lambdatest-cypress-cli": "^1.0.1"
  },
  "cypress-cucumber-preprocessor": {
    "nonGlobalStepDefinitions": true
  }
}

我猜gitlab在运行时提供了runner

我猜您正在使用GitLab的SaaS。这意味着您的VPN将在非私有环境中打开。例如,一些GitLab管理员应该可以访问您的VPN连接,并且根据GitLab在其后院的配置方式,其他一些GitLab用户可能可以访问您的专用网络。我会避免的。如果你坚持这样做,你最好使用你的项目的秘密功能来保存你的OpenVPN客户端身份验证,这样它仍然是私有的

我可以选择跑步者吗

当然。您可以注册一个在您自己的服务器上运行的runner(甚至在家中按需运行)。这取决于这个跑步者在哪里以及如何使用(Docker?Kubernetes?Debian?等)。看一看。您需要从项目的配置生成一个令牌,然后使用该令牌安装运行程序

GitLab CI 一旦安装并配置了自己的runner(确保它在需要时运行),就需要在管道中配置VPN启动/停止。在这里,我复制了一段代码:

在脚本之前:
##
##虚拟专用网
##灵感来自:https://torguard.net/knowledgebase.php?action=displayarticle&id=138
##及http://forum.gitlab.com/t/connect-vpn-during-ci-cd/7585
##从变量到文件的内容:https://stackoverflow.com/a/49418265/4396362
##等待opnevpn connect比睡觉要好,最接近的可能是https://askubuntu.com/questions/28733/how-do-i-run-a-script-after-openvpn-has-connected-successfully
##也许这样行https://unix.stackexchange.com/questions/403202/create-bash-script-to-wait-and-then-run
##
-哪个openvpn | |(apt get update-y-qq&&apt get install-y-qq openvpn)#如果不可用,请安装openvpn。
-猫

我猜gitlab在运行时提供了runner

我猜您正在使用GitLab的SaaS。这意味着您的VPN将在非私有环境中打开。例如,一些GitLab管理员应该可以访问您的VPN连接,并且根据GitLab在其后院的配置方式,其他一些GitLab用户可能可以访问您的专用网络。我会避免的。如果你坚持这样做,你最好使用你的项目的秘密功能来保存你的OpenVPN客户端身份验证,这样它仍然是私有的

我可以选择跑步者吗

当然。您可以注册一个在您自己的服务器上运行的runner(甚至在家中按需运行)。这取决于这个跑步者在哪里以及如何使用(Docker?Kubernetes?Debian?等)。看一看。您需要从项目的配置生成一个令牌,然后使用该令牌安装运行程序

GitLab CI 一旦安装并配置了自己的runner(确保它在需要时运行),就需要在管道中配置VPN启动/停止。在这里,我复制了一段代码:

在脚本之前:
##
##虚拟专用网
##灵感来自:https://torguard.net/knowledgebase.php?action=displayarticle&id=138
##及http://forum.gitlab.com/t/connect-vpn-during-ci-cd/7585
##从变量到文件的内容:https://stackoverflow.com/a/49418265/4396362
##等待opnevpn connect比睡觉要好,最接近的可能是https://askubuntu.com/questions/28733/how-do-i-run-a-script-after-openvpn-has-connected-successfully
##也许这样行https://unix.stackexchange.com/questions/403202/create-bash-script-to-wait-and-then-run
##
-哪个openvpn | |(apt get update-y-qq&&apt get install-y-qq openvpn)#如果不可用,请安装openvpn。

-cat您的
gitlab runner
在哪里运行?它是什么类型的跑步者?您希望在每次运行时打开和关闭VPN连接吗?我想gitlab会在运行时提供运行程序。我可以选择跑步者吗?是的,我想连接到VPN并在管道完成后关闭VPN连接。您的
gitlab runner
在哪里运行?它是什么类型的跑步者?您希望在每次运行时打开和关闭VPN连接吗?我想gitlab会在运行时提供运行程序。我可以选择跑步者吗?是的,我想连接到VPN,并在管道完成后关闭VPN连接。