即使在退出代码 1 之后继续 运行 个脚本
Continue running scripts even after exit code 1
我正在尝试 运行 Gitlab 中的 Cypress 测试。下面是示例脚本。执行 'npm run Cypress' 后,如果有任何测试用例失败,它会以 'exit code 1' 退出,接下来的两个命令不会 运行.
有什么方法可以执行接下来的两个命令。接下来的两个命令,生成合并的 Jnuit 和 HTML 报告。
脚本:
- cd ./赛普拉斯
- npm ci
- npm 运行赛普拉斯
- npm 运行 mochawesome
- npm 运行 junit:merge
我尝试了下面提到的解决方案,但没有成功。
script:
- cd ./cypress
- npm ci
- npm run Cypress || exit 0
- npm run mochawesome
- npm run junit:merge
script:
- cd ./cypress
- npm ci
- npm run Cypress
after_script:
- npm run mochawesome
- npm run junit:merge
输出图像:
一种方法是不提及退出代码,它似乎是动态的,您可以直接在 ||
运算符之后回显一些内容。
npm run Cypress || echo \"The previous command has some errors..Continuing\"
使用 after_script
方法实际上应该可以正常工作,正如您从这个最小示例中看到的那样:
# .gitlab-ci.yml
test:
image: alpine
script:
- echo "Hello after_script!" > test.txt
- exit 1
after_script:
- cat test.txt
输出:
$ echo "Hello after_script!" > test.txt
$ exit 1
Running after_script
Running after script...
$ cat test.txt
Hello after_script!
Cleaning up file based variables
ERROR: Job failed: exit code 1
此外,您可以考虑使用 set +e
和 set -e
来 disable/enable 出错退出。
我正在尝试 运行 Gitlab 中的 Cypress 测试。下面是示例脚本。执行 'npm run Cypress' 后,如果有任何测试用例失败,它会以 'exit code 1' 退出,接下来的两个命令不会 运行.
有什么方法可以执行接下来的两个命令。接下来的两个命令,生成合并的 Jnuit 和 HTML 报告。
脚本: - cd ./赛普拉斯 - npm ci - npm 运行赛普拉斯 - npm 运行 mochawesome - npm 运行 junit:merge
我尝试了下面提到的解决方案,但没有成功。
script:
- cd ./cypress
- npm ci
- npm run Cypress || exit 0
- npm run mochawesome
- npm run junit:merge
script:
- cd ./cypress
- npm ci
- npm run Cypress
after_script:
- npm run mochawesome
- npm run junit:merge
输出图像:
一种方法是不提及退出代码,它似乎是动态的,您可以直接在 ||
运算符之后回显一些内容。
npm run Cypress || echo \"The previous command has some errors..Continuing\"
使用 after_script
方法实际上应该可以正常工作,正如您从这个最小示例中看到的那样:
# .gitlab-ci.yml
test:
image: alpine
script:
- echo "Hello after_script!" > test.txt
- exit 1
after_script:
- cat test.txt
输出:
$ echo "Hello after_script!" > test.txt
$ exit 1
Running after_script
Running after script...
$ cat test.txt
Hello after_script!
Cleaning up file based variables
ERROR: Job failed: exit code 1
此外,您可以考虑使用 set +e
和 set -e
来 disable/enable 出错退出。