流水线测试过程
流水线配置
version: '1.0'
name: test
displayName: test
triggers:
trigger: auto
push:
branches:
prefix:
- ''
variables:
POST_API: ***
stages:
- name: build-test
displayName: build-test
strategy: naturally
trigger: auto
executor: []
steps:
- step: build@gcc
name: build_gcc
displayName: build
gccVersion: '9.4'
commands:
- apt-get update
- ''
- apt-get install -y curl
- ''
- mkdir build
- ''
- make test-output
- ''
- make save-test-results
- ''
- gitee_id="$GITEE_PIPELINE_TRIGGER_USER"
- ''
- json_file="build/test_results.json"
- ''
- existing_json=$(cat "$json_file")
- ''
- updated_json=$(echo "$existing_json" | jq --arg gitee_id "$gitee_id" '.name = $gitee_id')
- ''
- echo "$updated_json" > "$json_file"
- ''
- cat build/test_results.json
- ''
- 'curl -X POST "$POST_API" -H "accept: application/json;charset=utf-8" -H "Content-Type: application/json" -d "$(cat build/test_results.json)" -v'
- ''
- ''
artifacts:
- name: test_results
path:
- ./build/test_results.json
caches: []
notify: []
strategy:
retry: '0'
流水线的配置文件定义了一个名为“test”的流水线,它具有自动触发的特性。该流水线包含一个阶段(stage),名为“build-test”,其目的是构建和测试代码。
其包含以下几个步骤:
环境准备
在“build-test”阶段中,首先执行的是环境准备步骤。这包括更新包列表(apt-get update)和安装必要的软件(apt-get install -y curl)。这些步骤确保了构建和测试环境的一致性和可用性。
构建与测试
接下来,流水线创建一个名为“build”的目录,并在其中执行构建命令(make test-output)和保存测试结果的命令(make save-test-results)。这些命令是构建和测试过程的核心。
结果处理
测试完成后,流水线会读取build/test_results.json文件中的测试结果,并使用jq工具更新其中的giteeName字段。这一步骤确保了测试结果中包含了执行流水线的用户的Gitee ID。
结果提交
更新后的测试结果通过curl命令被发送到指定的API($POST_API)。这一步骤实现了测试结果的自动化提交,使得测试结果可以被远程服务器接收和处理。
结果归档
最后,流水线将build/test_results.json文件作为构建产物(artifact)归档,以便后续的分析和审查。
如何进行流水线测试
完成实验后,请上传至远程仓库运行 CI。详细执行情况与输出可在流水线页面查看。