即使在退出代码 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 +eset -e 来 disable/enable 出错退出。