Skip to content

Upgrade dependencies on workflow ci - #4471

Merged
fpellet merged 6 commits into
masterfrom
fix/ci-workflow-warnings
Nov 1, 2026
Merged

fpellet merged 6 commits into
masterfrom
fix/ci-workflow-warnings

Conversation

@fpellet

@fpellet fpellet commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Every job of the CI reported two annotations: Node.js 20 is deprecated, for actions/checkout@v4, setup-dotnet@v4, cache@v4 and upload-artifact@v4, which GitHub now forces onto Node 24, and the notice that ubuntu-latest migrates to Ubuntu 26 between October 19 and November 19, 2026. This branch removes both, and stops Repo Assist and Release from running in the forks.

Actions and runners

  • Node 24: checkout@v7, setup-dotnet@v6, cache@v6 and upload-artifact@v7 in ci.yml, docs.yml and release.yml, the versions repo-assist.lock.yml already uses. Their release notes change none of the inputs these workflows use.
  • NuGet/login already runs on Node 24. Its comment named v1.1.0, but the pinned SHA is the one of v1.2.0.
  • Ubuntu 26.04: the Linux jobs run on ubuntu-26.04 instead of ubuntu-latest, so this PR builds and runs the integration tests on 26.04 before the migration does it unnoticed. The Windows jobs keep windows-latest.

Forks

Once a fork enables Actions, it runs every workflow of the repository. Recent forks show about 80 Repo Assist runs each, from its daily schedule and their own pull requests, all failing in pre_activation, and Release runs that build on Windows before failing to publish.

  • Repo Assist: if: github.repository == 'fsprojects/Paket' in the frontmatter of repo-assist.md, which gh-aw adds to the conditions of pre_activation and activation.
  • Release: the same condition on detect-release, which release and docs depend on.

In a fork, these runs are now skipped instead of failing. The CI keeps running there.

Regenerating the Repo Assist lock

gh aw compile without --dir also runs the maintenance-workflow step of gh-aw. As the repository has no aw.json opting into issue expiration, that step rewrites GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS from 168 to 0 (gh-aw ADR-51425). With gh aw compile --dir .github/workflows, the lock keeps the 168, and the diff only has the added condition. CLAUDE.md and the frontmatter of repo-assist.md now give that command.

Not tested by this PR

  • The git push of docs.yml to gh-pages: from v6, checkout keeps the credentials in a file of $RUNNER_TEMP instead of .git/config. It only runs after a stable release, or by hand.
  • The fork guards: they only show in a fork that has Actions enabled.

A fork that enables Actions runs it every day, and on its pull requests,
to fail in pre_activation.

As in 8571e08, the 168 of GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS is
kept: gh-aw v0.93.5 writes 0 even from the unchanged source.
gh aw compile --dir .github/workflows skips the maintenance-workflow
step, which rewrites GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS from 168
to 0 when no aw.json opts into issue expiration.
@fpellet
fpellet merged commit ca6a795 into master Nov 1, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant