Skip to content

ci: path-gate slow platform workflows#27861

Open
ulises-jeremias wants to merge 7 commits into
vlang:masterfrom
ulises-jeremias:ci/path-gate-slow-platforms
Open

ci: path-gate slow platform workflows#27861
ulises-jeremias wants to merge 7 commits into
vlang:masterfrom
ulises-jeremias:ci/path-gate-slow-platforms

Conversation

@ulises-jeremias

Copy link
Copy Markdown
Member

Summary

This PR path-gates slow platform and architecture workflows on pull requests:

  • .github/workflows/freebsd_ci.yml
  • .github/workflows/openbsd_ci.yml
  • .github/workflows/riscv64_linux_ci.yml
  • .github/workflows/s390x_linux_ci.yml
  • .github/workflows/termux_ci.yml

The change keeps workflow_dispatch and push to master unchanged. It only narrows normal PR execution to compiler, runtime, platform-sensitive, build, third-party, and workflow-specific paths.

Fixes #27842.

Why

These lanes are valuable but expensive. They should still run for changes that can affect portability, architecture behavior, bootstrap, runtime behavior, or the workflows themselves, while skipping unrelated PRs such as docs-only or unrelated tooling changes.

Notes

The PR filters include workflow self-tests and platform-sensitive paths such as:

  • cmd/v/**
  • cmd/tools/builders/**.v
  • vlib/builtin/**, vlib/os/**, vlib/time/**, vlib/runtime/**
  • vlib/term/**, vlib/net/**, vlib/crypto/rand/**, vlib/picoev/**
  • vlib/strconv/**, vlib/strings/**, vlib/sync/**, vlib/v/**
  • thirdparty/**, vc/**, GNUmakefile, Makefile
  • workflow-specific CI scripts and workflow files

Before merging, maintainers should confirm these slow-platform checks are not required unconditionally in branch protection. GitHub path-filtered workflows can be problematic if their checks are configured as required for every PR.

Validation

  • Parsed updated workflow YAML files with Ruby YAML.
  • Ran git diff --check.
  • Ran two AI code review passes. The first found missing ci/common/** and platform-sensitive module paths; those were added. The second found no blocking issues.

actionlint was not available locally. Full workflow behavior will be validated by GitHub Actions.

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecc6650855

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/freebsd_ci.yml
@medvednikov

Copy link
Copy Markdown
Member

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 00c8239bad

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/freebsd_ci.yml Outdated
@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3997146536

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/freebsd_ci.yml
Comment thread .github/workflows/freebsd_ci.yml Outdated
@medvednikov

Copy link
Copy Markdown
Member

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 76c25460ac

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/freebsd_ci.yml Outdated
Add vlib modules and cmd/tools entries from the essential_list in
cmd/tools/vtest-self.v to the FreeBSD and OpenBSD pull_request.paths
allowlists so changes to them re-trigger the slow BSD lanes.

Group the vlib entries in essential_list order and split the build-
examples / DB / Sokol deps into their own block, mirroring the layout
of ci/*_ci.vsh stages. Add a reminder comment above the negated
!**.md / !**.yml patterns to keep them after all positive patterns.
@ulises-jeremias

Copy link
Copy Markdown
Member Author

Thanks! Pushed an update to the ci/path-gate-slow-platforms branch that syncs both BSD allowlists with cmd/tools/vtest-self.v:essential_list.

Added the missing vlib entries to FreeBSD and OpenBSD pull_request.paths:
arrays, bitfield, cli, crypto/md5, dl, encoding, flag, io, json, json2, math, net, rand, semver, strconv, strings, sync, time, toml (the lanes already covered builtin, os, runtime, v).

Also added cmd/tools/vvet/** and cmd/tools/vdoc/**, since essential_list includes cmd/tools/vvet/vet_test.v and cmd/tools/vdoc/document/doc_test.v and the BSD lanes execute VTEST_JUST_ESSENTIAL=1 v -silent test-self, so changes to those tools should re-trigger them too.

The vlib entries are now grouped in essential_list order and the build-examples / DB / Sokol deps (e.g. db, sokol, gg, gx, fontstash, compress, veb, picoev, term, crypto/rand) live in a separate block, matching the stages in ci/*_ci.vsh. Added a reminder comment above !**.md / !**.yml to keep the negated patterns after all positive patterns.

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@medvednikov code review: the change switches from denylist (paths-ignore) to allowlist (paths) — the BSD lanes only trigger when changed paths are in the allowlist. Verified negated pattern ordering (!.md / !.yml vs .github/workflows/*.yml): GH Actions 'last matching pattern wins' semantics means the workflow file is correctly included (listed after the negations). All essential_list modules are covered. BSD lanes green in CI. No bugs introduced.

@medvednikov

Copy link
Copy Markdown
Member

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f8b90df91

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/riscv64_linux_ci.yml
riscv64 runs VTEST_ONLY=closure ./v test vlib/v/tests and s390x runs
./v test vlib/v/tests/fns/closure_test.v. Both import vlib/arrays and
vlib/rand, but those paths were missing from the pull_request allowlists,
so PRs touching only those modules would skip the arch lanes.
@vlang vlang deleted a comment from chatgpt-codex-connector Bot Jul 20, 2026
@medvednikov

Copy link
Copy Markdown
Member

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b5b7f71de6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/freebsd_ci.yml
GNUmakefile and Makefile unconditionally run
.github/problem-matchers/register_all.vsh as part of the build
target, so changes to the problem-matchers directory should re-trigger
the slow platform lanes (FreeBSD, OpenBSD, riscv64, s390x, Termux).

Mirrors the .github/workflows/<name>.yml entry pattern: positive
pattern listed before the !**.md / !**.yml negations so the directory
is included in the allowlist. The directory currently contains only
.vsh and .json files, so !**.yml does not match its contents.
@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@claude review

@ulises-jeremias

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 117dae1b53

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- 'vlib/sync/**'
- 'vlib/time/**'
- 'vlib/toml/**'
- 'vlib/v/**'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include hash in bootstrap path gates

This PR gate includes cmd/v/** and vlib/v/**, but it omits vlib/hash/** even though the compiler bootstrap imports hash directly (cmd/v/v.v:6) and several compiler modules import hash.fnv1a. With GitHub paths, the workflow runs only if “at least one path matches”, so a PR touching only vlib/hash/wyhash.c.v now skips these slow-platform bootstrap jobs; the old paths-ignore would have run them for that stdlib change. Please add vlib/hash/** to the new PR path lists that build cmd/v.

Useful? React with 👍 / 👎.

- 'vlib/time/**'
- 'vlib/toml/**'
- 'vlib/v/**'
# build-examples / DB / Sokol deps exercised by ci/freebsd_ci.vsh

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep example changes in build-example gates

This workflow still runs v -W build-examples through ci/freebsd_ci.vsh, but the new paths list has no examples/** entry. Because GitHub only starts a paths-filtered workflow when at least one changed file matches, an examples-only PR no longer gets the FreeBSD build-examples coverage that the previous paths-ignore allowed; add examples/** here if this job is meant to validate the files it compiles.

Useful? React with 👍 / 👎.

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.

CI: path-gate or schedule slow platform and architecture lanes

2 participants