我想用Python为一个flask应用做代码覆盖,并将其上传至 codecov.io
平台。我试图通过Gitlab CI直接上传,但它没有发生。它一直抛出以下错误。
HTTP 400
Provided token is not a UUID.
我创建了一个账户 codecov.io
并将其连接到我的 gitlab 帐户,并选择了一个仓库来工作。我将 token 添加为 gitlab CI 的环境变量。
我的CI文件是。
image: ubuntu:18.04
variables:
CODECOV_TOKEN: $CODECOV_TOKEN
stages:
- coverage
- deploy
coverage:
stage: coverage
before_script:
- apt-get -y update
- apt-get -y install curl python3-pip python3.7 zip
- python3.7 -m pip install --upgrade pip
- python3.7 -V
- pip3.7 install -r requirements.txt
script:
- coverage run -m pytest
- coverage report -m
after_script:
- bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
错误截图
但是,当我做 bash <(curl -s https://codecov.io/bash) -t <token>
从linux终端,成功上传。
我到底做错了什么?
你的GitLab CICD变量的截图显示了 CODECOV_TOKEN
变量为"受保护": GitLab只向运行在受保护分支和标签上的管道输出变量。
当你的流水线运行在一个非保护分支上时。CODECOV_TOKEN
未被设置,codecov脚本就会失败。
要使该变量对所有分支上运行的管道可用,请编辑该变量并取消选中 "保护变量"。