alunduil / alunduil/collection-json.hs

Evaluate pinning CI runner images instead of `-latest`

未關閉
#214 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
infrastructure
主要語言
Haskell
星號
3
分支
1
平均合併
5 小時 32 分鐘
30 天內合併 PR
67

描述

## Summary

Decide whether to pin the runner images (`ubuntu-24.04`, `macos-15`) instead of
tracking `ubuntu-latest` / `macos-latest`.

## Motivation

`ci.yml:25` matrixes `[ubuntu-latest, macos-latest]`, and `pre-commit.yml`,
`links.yml`, `ghc-matrix.yml`, and `release.yml` all run on `ubuntu-latest`.
When GitHub rolls `-latest` to a new image, the toolchain under a green build
changes with no commit in this repo, and the resulting failure lands on whatever
unrelated PR happens to be open. For a library whose CI value comes from
building the sdist against published bounds on a known toolchain, that is a real
source of unattributable red.

The tradeoff cuts both ways. `-latest` migrates for free and keeps the matrix
honest about what a current consumer builds on; a pin gives reproducibility but
goes stale, and Renovate does not track `runs-on:` labels out of the box, so
bumping it means hand edits or a custom manager. alunduil-chezmoi pins
`ubuntu-24.04`; the sibling Haskell repos do not.

This is a judgment call, not a defect — hence evaluate rather than change.

## Scope

- Decide pin versus `-latest`, and record the reasoning.
- If pinning: update the five workflows and add a Renovate custom manager (or
accept manual bumps and say so).
- If not: close with the rationale so the question does not resurface.

## Acceptance criteria

- [ ] A decision is recorded on this issue.
- [ ] If pinned, every workflow names an explicit image and the bump path is
documented or automated.

## Additional context

Surfaced by a CI and checks audit. Weighs more if unattended merges are ever
enabled, since a runner migration would then be merging against a moving
baseline.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。