Repository navigation
ci: align Buildkite step labels, emoji, and keys #714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
3f5f0a3
ci: key pipeline steps by the make target they run
dcalhoun 698108e
ci: label pipeline steps by platform with verb-first titles
dcalhoun 9c59912
ci: key the web bundle step by make build
dcalhoun 0432c93
ci: key pipeline steps by the platform-named make targets
dcalhoun 267a3cc
ci: label steps by the platform-named make targets
dcalhoun 56c8512
docs: name the renamed Android library E2E step in a test comment
dcalhoun 424a6a5
ci: report step checks under explicit commit status contexts
dcalhoun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid this issue cropping up in the future, we can 1) required every step and group to use
notify.github_commit_status; 2) update the pipeline setting to force reporting the custom status instead of deriving from the label name (that's outside of this repo's scope)Example for 1:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this suggestion resonates, I opened a PR in our private Buildkite configuration repository.
If it doesn't and you want to merge sooner without coordination, that's fine, too. My team will eventually get to adopt the approach in all repos and we'll update the GitHub checks settings one more time then. No dramas.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mokagio Wouldn't that move the same problem to a different layer? If we do this, the next time a rename happens we'll have to make a decision on whether to rename the custom labels or not. If we rename, we are back to square one with more to maintain, if we don't, now the action and the label are potentially out of sync or doesn't match the current naming scheme.
Especially in a small repo that won't impact many branches, nor would it require expensive rebases, the fix sounds like it creates more problems than it solves. But, that's just my take on it. Happy to leave the decision to you regardless.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mokagio interested in your thoughts on @oguzkocer perspective when you have time, no rush. I plan to leave this PR for the time being as it is not urgent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gio has gone AFK for ≈ a month, but here's my take:
Sure it moves the problem to a different layer, but one key is that the
notify: { github_commit_status: "…" }approach allows you to have a clean GitHub check name that is free of formatting or emojis etc, while keeping the label of the step in Buildkite's own UI nicer and fancier.1️⃣ Indeed when only relying on the
label:of the step, Buildkite will derive the GitHub check name by replacing emojis with:code:, addbuildkite/gutenbergkit/prefixes, etc, which (at leasts IMHO) makes them less readable in GitHub PRs' UI. So personally I think the benefit of usingnotify: { github_commit_status: "…" }is also about better readability of the GitHub check names on GitHub PRs' UI.For example, using an explicit
notify: { github_commit_status: "Test iOS App E2E" }on thelabel: ':ios: Test iOS App E2E'step will allow you to have it shown as a nice "Test iOS App E2E" line in the GitHub checks at the bottom of the PR rather than the more uglybuildkite/gutenbergkit/ios-test-ios-app-e2e.2️⃣ To Gio's point though, the other benefit of decoupling
github_commit_statusfromlabelis that if you decide to make a minimal change to thelabel:of astep(e.g. changinglabel: ':s3: Publish XCFramework to S3'tolabel: ':ios: Publish XCFramework to S3', or changinglabel: ':swift: :package: Publish PR XCFramework'tolabel: ':ios: Publish PR XCFramework'), at least this won't change the GitHub Check name/identifier under you, and thus if you used a commit_status that still makes senses before/after (e.g.github_commit_status: 'Publish XCFramework to S3'/github_commit_status: 'Publish PR XCFramework'without the emoji), this won't require you to update the GitHub repo's settings to update the "Required Checks" list on the branch protection settings just for that. Thelabel:and the GitHub check name can be kept independent instead of every little change of a label implicitly changing the GitHub check name under you.Of course, if you do change the semantics of what a step does and that you end up changing its
label:not just for a typo fix or for a change of emoji, but for a change in meaning, you'll probably still want to also update thenotify: { github_commit_status: "…" }part of thestepalongside your change of itslabel:to make the GitHub check name reflect that change of semantics too (e.g. forlabel: ':android: Test Android Library Instrumented'->label: ':android: Test Android Library E2E'you'd probably also want to updategithub_commit_status: 'Test Android Library Instrumented'->github_commit_status: 'Test Android Library E2E'). And thus would still have to update the branch protection settings accordingly.But at least:
buildkite/gutenbergkit/prefix, no transformation of:ios:emoji code from thelabel:into anios-prefix in the check name…)label:but not thegithub_commit_status, no need to update the branch protection settings; only if your PR makes changes to thegithub_commit_statuswill it be an explicit signal/reminder to update the settings. While today with the GitHub commit status name derived from thelabel:it might not be as obvious to PR authors or reviewers that changing thelabel:will have this unfortunate consequence, making them more likely to forget to update the settings.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the helpful explanation. 🙇🏻♂️ I added the suggested
notify.github_commit_statusto each task. I believe the next steps are:I believe No. 3 must occur last, and the only impact between merges will be that duplicate tasks will show up on PR reports.
@AliSoftware would you be willing to help with No. 3 after this PR merges? I can merge early next week.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure thing. It'd be easy enough since Gio already prepared the PR, which is here. So it'd just be a matter of (rebasing it + undraft it +) hit the button to deploy it once you did 1 & 2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AliSoftware thank you! This PR was merged and the project's required checks are updated. We can proceed with the Buildkite CI PR.
Is this the PR merge button or a separate deploy action? I originally requested your assistance because I presumed it was the latter, a separate deploy step for which I lack permissions. If it is simply merging the PR, I'm happy to manage that, just let me know. 🙇🏻♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a different button, I can take care of it 🙂
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, the
buildkite/gutenbergkit/…entries on GitHub PR checks should not appear on new PRs, only keeping the explicit ones you provided now.