Skip to content

Conversation

apricote
Copy link
Owner

@apricote apricote commented Jun 14, 2025

Each run of releaser-pleaser acts on the same global state in the forge. Therefore, parallel runs are unnecessary.

This commit also communicates to the GitHub and GitLab CI pipelines that the releaser-pleaser jobs can be cancelled as early as possible.

  • On GitHub Actions this can be guaranteed through the workflow settings. These settings are copied into each repository that uses releaser-pleaser, so users need to update this manually. I will add a note to the release notes for this.
  • On GitLab CI/CD this requires the user to configure a project level setting to "auto-cancel redundant pipelines". We will not recommend user to set this, as it is quite invasive and can break their regular CI pipelines.

Each run of releaser-pleaser acts on the same global state in the
forge. Therefore parallel runs are unnecessary.

This commit also communicates to the GitHub and GitLab CI pipelines that
the releaser-pleaser jobs can be cancelled as early as possible.

- On GitHub Actions this can be guaranteed through the workflow
  settings. These settings are copied into each repository that uses
  releaser-pleaser, so users need to update this manually. I will add a
  note to the release notes for this.
- On GitLab CI/CD this requires the user to configure a project level setting to
  "auto-cancel redundant pipelines". We will not recommend user to set
  this, as it is quite invasive and can break their regular CI pipelines.
@apricote apricote self-assigned this Jun 14, 2025
@apricote apricote changed the title feat: run one job concurrenlty to reduce chance of conflicts feat: run one job concurrently to reduce chance of conflicts Jun 14, 2025
@apricote apricote added the enhancement New feature or request label Jun 14, 2025
@apricote apricote enabled auto-merge (squash) June 14, 2025 13:43
@apricote apricote disabled auto-merge June 14, 2025 13:43
@apricote apricote enabled auto-merge (squash) June 14, 2025 13:43
@apricote apricote merged commit 2d3a960 into main Jun 14, 2025
6 checks passed
@apricote apricote deleted the ci-concurrency branch June 14, 2025 13:43
@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 24.75%. Comparing base (d24ae7d) to head (906fcb3).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #198   +/-   ##
=======================================
  Coverage   24.75%   24.75%           
=======================================
  Files          22       22           
  Lines        1802     1802           
=======================================
  Hits          446      446           
  Misses       1328     1328           
  Partials       28       28           

☔ 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 added a commit that referenced this pull request Jun 14, 2025
Describe the issue with concurrency, the global state and what went into
the recent changes in #196, #197 and #198.
apricote added a commit that referenced this pull request Jun 14, 2025
Describe the issue with concurrency, the global state and what went into
the recent changes in #196, #197 and #198.
apricote added a commit that referenced this pull request Jun 14, 2025
Describe the issue with concurrency, the global state and what went into
the recent changes in #196, #197 and #198.
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.

2 participants