Skip to content

Conversation

apricote
Copy link
Owner

@apricote apricote commented Nov 20, 2024

Right now releaser-pleaser pushes the branch even if it is only for a "rebase", this wastes CI resources. Instead it should only push when there are changes to the files it owns.

Old: Push when there is a diff origin/release-pr..release-pr
New: Push when the these two diffs are not the same:

  • origin/main..release-pr
  • $(git merge-base origin/main origin/release-pr)..release-pr

Closes #92

@apricote apricote added the enhancement New feature or request label Nov 20, 2024
@apricote apricote self-assigned this Nov 20, 2024
@apricote apricote force-pushed the push-when-changes branch from f94c8f4 to d486851 Compare June 9, 2025 08:47
@apricote apricote marked this pull request as ready for review June 9, 2025 08:49
@codecov-commenter
Copy link

Codecov Report

Attention: Patch coverage is 42.85714% with 24 lines in your changes missing coverage. Please review.

Project coverage is 25.46%. Comparing base (175d6d0) to head (d486851).

Files with missing lines Patch % Lines
internal/git/git.go 43.90% 18 Missing and 5 partials ⚠️
releaserpleaser.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
+ Coverage   24.58%   25.46%   +0.87%     
==========================================
  Files          22       22              
  Lines        1704     1736      +32     
==========================================
+ Hits          419      442      +23     
  Misses       1266     1266              
- Partials       19       28       +9     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

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

@apricote apricote merged commit 81a855f into main Jun 9, 2025
4 checks passed
@apricote apricote deleted the push-when-changes branch June 9, 2025 08:52
apricote added a commit that referenced this pull request Jun 14, 2025
The whole check to avoid pushes when they were only rebases was broken
and compared the wrong things. Unfortunately this worked for nearly all
unit tests, except for one were I used the wrong assertion.

This fixed the check by comparing the right things and inverting the
assertion in the unit test to make sure things do not break again in the
future.

Bug was introduced in #114.
apricote added a commit that referenced this pull request Jun 14, 2025
The whole check to avoid pushes when they were only rebases was broken
and compared the wrong things. Unfortunately this worked for nearly all
unit tests, except for one were I used the wrong assertion.

This fixed the check by comparing the right things and inverting the
assertion in the unit test to make sure things do not break again in the
future.

Bug was introduced in #114.
apricote pushed a commit to hetznercloud/fleeting-plugin-hetzner that referenced this pull request Jun 16, 2025
…etznercloud/fleeting-plugin-hetzner!252)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [apricote/releaser-pleaser](https://gitlab.com/apricote/releaser-pleaser) | repository | minor | `v0.5.1` -> `v0.6.0` |

---

### Release Notes

<details>
<summary>apricote/releaser-pleaser (apricote/releaser-pleaser)</summary>

### [`v0.6.0`](https://gitlab.com/apricote/releaser-pleaser/blob/HEAD/CHANGELOG.md#v060)

[Compare Source](https://gitlab.com/apricote/releaser-pleaser/compare/v0.5.1...v0.6.0)

##### ✨ Highlights

##### Reduced resource usage

`releaser-pleaser` now uses less resources:

- It now skips pushing changes to the release pull request if they are only a rebase.
- The configurations for GitHub Actions and GitLab CI/CD now makes sure that only a single job is running at the same time. On GitHub unnecessary/duplicate jobs are also automatically aborted.
- It handles the stop signals from the CI environment and tries to exit quickly.

\`\`\`yaml
concurrency:
group: releaser-pleaser
cancel-in-progress: true
\`\`\`

##### Avoid losing manual edits to release pull request

Before, releaser-pleaser was prone to overwriting user changes to the release pull request if they were made after releaser-pleaser already started running. There is now an additional check right before submitting the changes to see if the description changed, and retry if it did.

##### Proper commit authorship

Before, the release commits were created by `releaser-pleaser &lt;&gt;`. This was ugly to look at. We now check for details on the API user used to talk to the forge, and use that users details instead as the commit author. The committer is still `releaser-pleaser`.

##### Features

- real user as commit author ([#&#8203;187](apricote/releaser-pleaser#187))
- avoid pushing release branch only for rebasing ([#&#8203;114](apricote/releaser-pleaser#114))
- colorize log output ([#&#8203;195](apricote/releaser-pleaser#195))
- graceful shutdown when CI job is cancelled ([#&#8203;196](apricote/releaser-pleaser#196))
- detect changed pull request description and retry process ([#&#8203;197](apricote/releaser-pleaser#197))
- run one job concurrently to reduce chance of conflicts ([#&#8203;198](apricote/releaser-pleaser#198))

##### Bug Fixes

- crash when running in repo without any tags ([#&#8203;190](apricote/releaser-pleaser#190))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC41Ny4xIiwidXBkYXRlZEluVmVyIjoiNDAuNTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

fix: only push when there are actual changes, not only for rebasing
2 participants