Javascript 如何在cypress项目的gitlab管道中连接到openVpn
我在做一个柏树项目。我已经在GitLab建立了一个管道。 我的应用程序只能在通过开放VPN连接的专用网络上工作 有人能告诉我如何将其添加到.gitlab-ci.yml文件中吗 My.gitlab-ci.yml是: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
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连接。