Skip to content

Commit 5219b88

Browse files
CopilotPureWeenCopilot
authored
Adopt arcade inter-branch merge workflow for main → net10.0 and main → net11.0 (dotnet#34144)
<!-- Please let the below note in for people that find this PR --> > [!NOTE] > Are you waiting for the changes in this PR to be merged? > It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you! Adopts the shared `dotnet/arcade` inter-branch merge infrastructure (used by 20+ dotnet repos including runtime, aspnetcore, sdk, efcore, msbuild) to replace our custom weekly schedule-based workflow and manual merge script. ### Changes - **New** `.github/workflows/merge-main-to-net10.yml` — merges `main` → `net10.0` using arcade - **New** `.github/workflows/merge-main-to-net11.yml` — merges `main` → `net11.0` using arcade - **New** `github-merge-flow-net10.jsonc` — config for main → net10.0 - **New** `github-merge-flow-net11.jsonc` — config for main → net11.0 - **Removed** `.github/workflows/weekly-branch-merge.yml` — replaced by above - **Removed** `.github/scripts/MergeBranchAndCreatePR.ps1` — no longer needed ### Why two workflows? The arcade infrastructure supports one `MergeToBranch` per source branch per config file. To merge `main` into both `net10.0` and `net11.0` independently (not chained), we use two workflows with separate config files. ### How it works 1. A PR merges to `main` 2. Both workflows trigger simultaneously 3. Each creates (or updates) a merge PR: `merge/main-to-net10.0` → `net10.0` and `merge/main-to-net11.0` → `net11.0` 4. The merge PRs wait for human review — nothing is auto-merged 5. `ResetToTargetPaths` auto-resets version files (`global.json`, `eng/Versions.props`, etc.) to avoid common conflicts ### Triggers | Trigger | Purpose | |---|---| | `push` to `main` | Immediate — runs on every merge to main | | `schedule` (daily 3 AM UTC) | Safety net — catches missed push events | | `workflow_dispatch` | Manual — run on-demand from Actions UI | ### Comparison | | Old | New | |---|---|---| | Trigger | Weekly cron (Mondays) | On push + daily cron + manual | | Merge topology | Custom script | Arcade shared infrastructure | | Version file conflicts | Manual resolution | `ResetToTargetPaths` auto-resets | | Maestro-only commits | Creates PR anyway | Skipped automatically | | Notifications | Default @-mentions | `-QuietComments` suppresses noise | | Existing PR handling | Fails if PR exists | Updates existing PR in place | | Maintenance | Custom MAUI-only script | Centralized in arcade, shared across 20+ repos | --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: PureWeen <5375137+PureWeen@users.noreply.github.com> Co-authored-by: Shane Neuville <shneuvil@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent dea56cb commit 5219b88

6 files changed

Lines changed: 88 additions & 402 deletions

File tree

.github/scripts/MergeBranchAndCreatePR.ps1

Lines changed: 0 additions & 313 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Merge main → net10.0
2+
# Uses the shared dotnet/arcade merge flow infrastructure.
3+
# Configuration: /github-merge-flow-net10.jsonc
4+
#
5+
# Key features (from arcade):
6+
# - Event-driven: triggers on push, with daily cron safety net
7+
# - ResetToTargetPaths: auto-resets version files to target branch versions
8+
# - QuietComments: reduces GitHub notification noise
9+
# - Skips PRs when only Maestro bot commits exist
10+
# - Updates existing open PR instead of creating new ones
11+
12+
name: Merge main to net10.0
13+
14+
on:
15+
workflow_dispatch:
16+
push:
17+
branches:
18+
- main
19+
20+
# Daily safety net in case a push event is missed
21+
schedule:
22+
- cron: '0 3 * * *'
23+
24+
permissions:
25+
contents: write
26+
pull-requests: write
27+
28+
jobs:
29+
Merge:
30+
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
31+
with:
32+
configuration_file_path: 'github-merge-flow-net10.jsonc'
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Merge main → net11.0
2+
# Uses the shared dotnet/arcade merge flow infrastructure.
3+
# Configuration: /github-merge-flow-net11.jsonc
4+
#
5+
# Key features (from arcade):
6+
# - Event-driven: triggers on push, with daily cron safety net
7+
# - ResetToTargetPaths: auto-resets version files to target branch versions
8+
# - QuietComments: reduces GitHub notification noise
9+
# - Skips PRs when only Maestro bot commits exist
10+
# - Updates existing open PR instead of creating new ones
11+
12+
name: Merge main to net11.0
13+
14+
on:
15+
workflow_dispatch:
16+
push:
17+
branches:
18+
- main
19+
20+
# Daily safety net in case a push event is missed
21+
schedule:
22+
- cron: '0 3 * * *'
23+
24+
permissions:
25+
contents: write
26+
pull-requests: write
27+
28+
jobs:
29+
Merge:
30+
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
31+
with:
32+
configuration_file_path: 'github-merge-flow-net11.jsonc'

0 commit comments

Comments
 (0)