Skip to content

Refactor sync pipeline: extract all logic into testable scripts#81

Merged
agocke merged 1 commit into
bazelfrom
refactor/sync-scripts-v2
Mar 15, 2026
Merged

Refactor sync pipeline: extract all logic into testable scripts#81
agocke merged 1 commit into
bazelfrom
refactor/sync-scripts-v2

Conversation

@agocke
Copy link
Copy Markdown
Owner

@agocke agocke commented Mar 15, 2026

  • sync-upstream.sh: add --output-file for structured key=value output, --skip-fetch for local testing, reorder pipeline so Copilot fix runs before push and PR creation is the absolute last step
  • equivalence-check.sh (new): self-discovering script that finds open sync PRs via gh CLI, builds MSBuild+Bazel, runs comparisons, posts results. Accepts --branch/--skip-* overrides for local testing
  • test-sync-workflow.sh (new): validates output-file format, tests equivalence-check discovery and override modes
  • sync-release.yml: dramatically simplified — each job is env setup + one script call. No inline bash logic, no stdout parsing. Writes directly to GITHUB_OUTPUT via --output-file. Equivalence check job uses script self-discovery instead of forwarded outputs
  • detect-upstream-changes.sh: minor cleanup (tail -1 fix for multi-line classification grep)

- sync-upstream.sh: add --output-file for structured key=value output,
  --skip-fetch for local testing, reorder pipeline so Copilot fix runs
  before push and PR creation is the absolute last step
- equivalence-check.sh (new): self-discovering script that finds open
  sync PRs via gh CLI, builds MSBuild+Bazel, runs comparisons, posts
  results. Accepts --branch/--skip-* overrides for local testing
- test-sync-workflow.sh (new): validates output-file format, tests
  equivalence-check discovery and override modes
- sync-release.yml: dramatically simplified — each job is env setup +
  one script call. No inline bash logic, no stdout parsing. Writes
  directly to GITHUB_OUTPUT via --output-file. Equivalence check job
  uses script self-discovery instead of forwarded outputs
- detect-upstream-changes.sh: minor cleanup (tail -1 fix for
  multi-line classification grep)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@agocke agocke merged commit 26c7147 into bazel Mar 15, 2026
5 of 6 checks passed
@agocke agocke deleted the refactor/sync-scripts-v2 branch March 15, 2026 21:45
agocke pushed a commit that referenced this pull request Apr 23, 2026
agocke added a commit that referenced this pull request May 19, 2026
> [!NOTE]
> This PR was AI/Copilot-generated.

## Summary

Replace `File[]`/`fileRefs` with Bazel-style `@pkg//path:file` labels
for external package references. This removes all raw `File[]` usage for
NuGet packages in favor of the label resolution system.

## Changes

- **`config.dsc`**: Add `Sdk.Managed.Shared` module (new in ci.7),
update `bxl_rules` and `bxl_rules_dotnet` commits for `@pkg` label +
`externalPackages` support
- **`defs/defs.dsc`**: Add `EXTERNAL_PACKAGES` map (registers NuGet +
SDK `StaticDirectory` contents), convert `XUNIT_DEPS` from `File[]` to
`Label[]`, add `XUNIT_RUNTIME_DEPS` for test staging, remove
`CORECLR_TEST_COMMON_REFS`
- **`coreclr_test.dsc`**: Replace `fileRefs` with `externalPackages`
- **Workflow**: Upgrade BXL to `0.2.0-ci.7.b93871e`
- **`.gitignore`**: Add `Out/`

## Dependencies

- [`bxl_rules` @
3a49444](https://github.com/agocke/bxl_rules/tree/add-gh-workflow-bootstrap)
— adds `@pkg//path:file` label resolution
- [`bxl_rules_dotnet` @
52b26ea](https://github.com/agocke/bxl_rules_dotnet/tree/external-toolchain-gitrepo)
— adds `externalPackages` passthrough

## Testing

Type checking and evaluation pass with ci.7. Execution failures (7/13)
are pre-existing on `origin/bxl` (toolchain path issue), not introduced
by this PR.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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