会触发吗、能开跑吗
(托管 CI 概念:matrix_count(系统, 版本) = 系统数 × 版本数(矩阵一共几个 job);triggered(事件, on) 判这个事件在不在触发列表里;job_can_start(job, 已完成) 判它依赖的 job 都完成了没。)
问 push 事件在不在触发列表里、以及一个 job 的依赖是否就绪:
def matrix_count(oses, pys):
"""矩阵构建:每个操作系统配每个 Python 版本各跑一个 job,一共几个 job。"""
return len(oses) * len(pys)
def triggered(event, on):
"""工作流声明在 on 这些事件上触发;event 这个事件来了会不会跑。"""
return event in on
def job_can_start(job, done):
"""job = (名字, [它 needs 的 job]);它依赖的都在 done 里才能开跑。"""
name, needs = job
return all(d in done for d in needs)
a = triggered("push", ["push", "pull_request"])
b = job_can_start(("deploy", ["build", "test"]), {"build", "test"})
print(str(a) + "/" + str(b))
全部评论