Repository navigation
Commit a35381c
committed
ci: 工具链安装是 job 的准备工作,不该由碰巧排第一的成员承担
grpc-codegen 在 linux 上死于 compat.openssl 的 install():
`stdlib.h: No such file or directory`。同一个成员在 macOS(那里
openssl 用 /usr/bin/cc)和 windows 上都过,而它的姊妹 grpc-module
排在第二、工具链已就位,构建同一个 openssl 毫无问题。
差别只有一个:它是本 shard 第一个成员,于是承担了 mcpp 的一次性
工具链自举 —— 并且是在**它自己的**环境里承担的。带自定义
`[indices]` 的成员用的是项目局部 xlings home
(<member>/.mcpp/.xlings),而 openssl 走自己的 Makefile、用裸 gcc,
头文件搜索完全来自 xvm shim 的 --sysroot;那个 sysroot 指到项目局部
subos,它的 usr/include 是空的。
于是 job 的成败取决于成员**顺序**。这一步用一个没有 [indices] 的
最小工程把工具链装进共享 home,一次,单独一个进程,在任何成员开始
之前。这本身也更诚实:job 该显式准备自己的环境,而不是继承上一个
测试留下的副作用。1 parent f0663ad commit a35381c
1 file changed
Lines changed: 35 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
575 | 575 | | |
576 | 576 | | |
577 | 577 | | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
578 | 613 | | |
579 | 614 | | |
580 | 615 | | |
| |||
0 commit comments