Skip to content

ci: compile on CI after merge to reduce conflicts and total CI time#60589

Draft
susnux wants to merge 1 commit into
masterfrom
ci/compile-later
Draft

ci: compile on CI after merge to reduce conflicts and total CI time#60589
susnux wants to merge 1 commit into
masterfrom
ci/compile-later

Conversation

@susnux
Copy link
Copy Markdown
Contributor

@susnux susnux commented May 19, 2026

Summary

One of the biggest CI problems we currently face are conflicts, not within source code but in compiled assets.
So if you have 2 PRs targeting e.g. files then the assets will likely conflict even if the source can be merged without problems.

This causes unnecessary CI time and developer frustration.

Another really bad example: Dependency updates.

So this solution is the currently lived solution of the text app:

  1. we add a CI check to forbid checking in compiled assets
  2. we adjust the node workflow to no longer check for asset changes
  3. we add a CI workflow to compile after merges.

For the corner case where a new PR is merged before the compilation has finished this will abort the first compile and start a new one for the current HEAD.
So this also reduces the repository size in cases of many quick merged like during dependabot updates.

TODO

⚠️ this needs some repository setups ⚠️

  1. This needs to be aligned with the releases team, during releases:
  • either you compile in the PR and force merge with red CI for the "forbid assets" check
  • or you merge and wait for the compile to finish to tag the release
  1. This needs setup of the secrets to be able to push the compiles assets
  • Setup a github environment update-node-dist
  • Setup secret BOT_GITHUB_TOKEN with push permission to the branches
  • ❗ see text repository setup for how to do this securely

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@susnux susnux added this to the Nextcloud 35 milestone May 19, 2026
One of the biggest CI problems we currently face are conflicts,
not within source code but in compiled assets.
So if you have 2 PRs targeting e.g. files then the assets will likely
conflict even if the source can be merged without problems.

This causes unnecessary CI time and developer frustration.

Another really bad example: Dependency updates.

So this solution is the currently lived soltion of the `text` app:
1. we add a CI check to forbid checking in compiled assets
2. we adjust the node workflow to no longer check for asset changes
3. we add a CI workflow to compile after merges.

For the corner case where a new PR is merged before the compilation has
finished this will abort the first compile and start a new one for the
current HEAD.
So this also reduces the repository size in cases of many quick merged
like during dependabot updates.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
@susnux susnux force-pushed the ci/compile-later branch from 79ef277 to 900e876 Compare May 19, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant