Skip to content

fix(workflows): prevent release-please infinite loop on main branch#470

Merged
WilliamBerryiii merged 5 commits intomainfrom
fix/422-prevent-release-please-infinite-loop
Feb 12, 2026
Merged

fix(workflows): prevent release-please infinite loop on main branch#470
WilliamBerryiii merged 5 commits intomainfrom
fix/422-prevent-release-please-infinite-loop

Conversation

@WilliamBerryiii
Copy link
Copy Markdown
Member

Description

Adds a one-line if guard to the Release Please job in the main workflow to prevent an infinite loop. When release-please merges its own PR, the resulting chore(main): release commit triggers the workflow again, which runs release-please again, creating an endless cycle. The guard skips the Release Please job when the triggering commit message starts with chore(main): release.

  • Add if condition to Release Please job in .github/workflows/main.yml to skip bot commits
  • Update docs/architecture/workflows.md with Mermaid highlight, explanatory paragraph, and table revision

Related Issue(s)

Closes #422

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

AI Artifacts:

  • Reviewed contribution with prompt-builder agent and addressed all feedback
  • Copilot instructions (.github/instructions/*.instructions.md)
  • Copilot prompt (.github/prompts/*.prompt.md)
  • Copilot agent (.github/agents/*.agent.md)
  • Copilot skill (.github/skills/*/SKILL.md)

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe):

Testing

All repository validation checks pass:

  • npm run lint:yaml — YAML linting passed
  • npm run lint:md — Markdown linting passed
  • npm run lint:frontmatter — Frontmatter validation passed
  • npm run format:tables — Table formatting verified

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

Additional Notes

  • The if expression requires double-quoting in YAML because the commit prefix chore(main): release contains a colon character
  • The expression uses ${{ !startsWith(...) }} to ensure correct evaluation in GitHub Actions
  • Milestone: v2.3.0 (due 2026-02-11)

🔧 - Generated by Copilot

- add commit-message guard to skip release-please on bot merges
- update workflow architecture docs to reflect bot-skip behavior

Closes #422

🐛 - Generated by Copilot
Copilot AI review requested due to automatic review settings February 10, 2026 22:36
@WilliamBerryiii WilliamBerryiii requested a review from a team as a code owner February 10, 2026 22:36
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 10, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.40%. Comparing base (6b84a8e) to head (0d14269).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #470      +/-   ##
==========================================
- Coverage   83.43%   83.40%   -0.03%     
==========================================
  Files          20       20              
  Lines        3507     3507              
==========================================
- Hits         2926     2925       -1     
- Misses        581      582       +1     
Flag Coverage Δ
pester 83.40% <ø> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@WilliamBerryiii WilliamBerryiii added this to the v2.3.0 milestone Feb 10, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Prevents release-please from re-triggering itself on main by skipping the Release Please job when the push commit message matches the release-please merge commit prefix, and updates workflow architecture documentation to reflect the new guard.

Changes:

  • Add a job-level if guard to release-please in the main.yml workflow to avoid the bot-trigger loop.
  • Update the workflows architecture doc with a Mermaid highlight and an explanation of the guard behavior.
  • Revise the “Main Branch Jobs” table to note the conditional skip behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/main.yml Adds an if condition to skip Release Please on chore(main): release... commits to break the loop.
docs/architecture/workflows.md Documents the guard and updates the main-branch workflow diagram/table accordingly.

- add event_name != 'push' guard to avoid null head_commit on workflow_dispatch
- reword docs to describe commit-message-based skip, not bot detection

🔧 - Generated by Copilot
- colon in 'chore(main): release' breaks unquoted YAML parsing
- restores double-quoting required for mapping-value safety

🔒 - Generated by Copilot
Copilot AI review requested due to automatic review settings February 12, 2026 19:51
Copy link
Copy Markdown
Member Author

@WilliamBerryiii WilliamBerryiii left a comment

Choose a reason for hiding this comment

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

Addressing security scan findings:\n\n1. Syntax error (code-scanning/18) — Fixed in 712fad7 by restoring double quotes around the if expression. The unquoted : in chore(main): release broke YAML parsing.\n\n2. Expression always true (code-scanning/17) — Same root cause. The YAML parser truncated the expression at the colon, producing a fragment that trivially evaluated to true. The double-quoting fix resolves both alerts.\n\n3. Original reviewer comments (copilot-pull-request-reviewer) — Both addressed in 444c145: added event_name != 'push' guard and aligned doc wording to describe commit-message-based behavior rather than bot detection.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@WilliamBerryiii WilliamBerryiii merged commit 134bdd6 into main Feb 12, 2026
17 checks passed
WilliamBerryiii pushed a commit that referenced this pull request Feb 13, 2026
🤖 I have created a release *beep* *boop*
---


##
[2.3.0](hve-core-v2.2.0...hve-core-v2.3.0)
(2026-02-13)


### ✨ Features

* **agents:** add GitHub backlog management pipeline
([#448](#448))
([2b4d123](2b4d123))
* **docs:** define inactivity closure policies for issues and PRs
([#452](#452))
([5e710fd](5e710fd))
* **extension:** implement collection-based plugin distribution system
([#439](#439))
([3156d98](3156d98))
* **instructions:** replace EVEN/ODD hardcoding with runtime milestone
discovery protocol
([#486](#486))
([ae95eb2](ae95eb2))
* **plugin:** support Copilot CLI plugin generation from collection
manifests ([#496](#496))
([e6cee85](e6cee85))
* **scripts:** enhance on-create.sh to install actionlint and PowerShell
modules ([#500](#500))
([67585f5](67585f5))


### 🐛 Bug Fixes

* **docs:** replace broken relative link with inline code reference
([#465](#465))
([8133b36](8133b36))
* **instructions:** prevent local-only paths from leaking into GitHub
issues ([#489](#489))
([497d2fe](497d2fe))
* **workflows:** prevent release-please infinite loop on main branch
([#470](#470))
([134bdd6](134bdd6))
* **workflows:** remove release-please skip guard that prevents tag
creation ([#511](#511))
([5e53271](5e53271))


### 📚 Documentation

* **agents:** add GitHub Backlog Manager documentation and agent catalog
([#503](#503))
([5e818ce](5e818ce))
* align CONTRIBUTING.md with docs/contributing/ guides
([#445](#445))
([73ef6aa](73ef6aa))


### ♻️ Refactoring

* **scripts:** refactor dev-tools and lib scripts to use CIHelpers
module ([#482](#482))
([fdf9145](fdf9145))
* **scripts:** standardize PowerShell entry point guard pattern
([#477](#477))
([6b84a8e](6b84a8e))


### 🔧 Maintenance

* **config:** standardize action mappings in artifact-retention.yml
([#487](#487))
([7927db2](7927db2))
* **deps-dev:** bump cspell from 9.6.2 to 9.6.4 in the npm-dependencies
group ([#461](#461))
([c788095](c788095))
* **deps:** bump actions/setup-python from 5.1.1 to 6.2.0 in the
github-actions group
([#462](#462))
([69ef3c9](69ef3c9))
* **security:** add SBOM artifact retention policy
([#479](#479))
([8031557](8031557)),
closes [#453](#453)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: hve-core-release-please[bot] <254602402+hve-core-release-please[bot]@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.

fix(build): Prevent release-please infinite loop on main branch

4 participants