Skip to content
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

Add Buildkite Release Builds #5959

Merged
merged 4 commits into from
Mar 1, 2022
Merged

Add Buildkite Release Builds #5959

merged 4 commits into from
Mar 1, 2022

Conversation

jkmassel
Copy link
Contributor

@jkmassel jkmassel commented Mar 1, 2022

Adds Release Builds with Buildkite

@jkmassel jkmassel added the category: tooling Anything that involves building & maintaining the project, including scripts, `Fastfile`, etc. label Mar 1, 2022
@jkmassel jkmassel added this to the 8.6 ❄️ milestone Mar 1, 2022
@jkmassel jkmassel requested a review from a team as a code owner March 1, 2022 03:57
@jkmassel jkmassel self-assigned this Mar 1, 2022
@peril-woocommerce
Copy link

Warnings
⚠️ This PR is assigned to a milestone which is closing in less than 4 days Please, make sure to get it merged by then or assign it to a later expiring milestone

Generated by 🚫 dangerJS

@jkmassel jkmassel force-pushed the add/buildkite-release-builds branch from 8241a85 to 5cf0d48 Compare March 1, 2022 03:58
@jkmassel jkmassel force-pushed the add/buildkite-release-builds branch from 5cf0d48 to 715c077 Compare March 1, 2022 03:58
@wpmobilebot
Copy link
Collaborator

wpmobilebot commented Mar 1, 2022

You can test the changes on this Pull Request by downloading an installable build, or scanning this QR code:

Copy link
Contributor

@mokagio mokagio left a comment

Choose a reason for hiding this comment

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

Looking good so far. Submitting this as a comment before triggering a release build myself 😏

Comment on lines 13 to 14
notify:
- slack: "#build-and-ship"
Copy link
Contributor

Choose a reason for hiding this comment

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

The docs say:

Screen Shot 2022-03-01 at 3 08 43 pm

So, I would have expected this to have to be indented:

Suggested change
notify:
- slack: "#build-and-ship"
notify:
- slack: "#build-and-ship"

But clearly YAML can handle it. Not only I see the notifications in that Slack channel, but I also see the parsing working fine if I try locally:

➜ ruby -e "require 'yaml';puts YAML.load_file('.buildkite/release-builds.yml')"
{"common_params"=>[["automattic/bash-cache#2.1.0"]], "steps"=>[{"label"=>"🛠 Release Build", "command"=>".buildkite/commands/release-build.sh", "plugins"=>["automattic/bash-cache#2.1.0"], "notify"=>[{"slack"=>"#build-and-ship"}]}]}

Of course, nothing guarantees that Buildkite uses the same parser as I did, but the fact that both work clearly points to the syntax being valid and my mental representation incorrect.

Copy link
Contributor Author

@jkmassel jkmassel Mar 1, 2022

Choose a reason for hiding this comment

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

This is a good point – it might be worth putting a YAML linter in place sometime down the road. I ran yamllint locally, and it agrees with you, so I've fixed it in b36ba72.

Thanks!!

Comment on lines +724 to +726
def is_beta_version(version)
version['name'].include? "-rc-"
end
Copy link
Contributor

Choose a reason for hiding this comment

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

This logic is trivial, but seems a good candidate for future extraction in the release toolkit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was thinking about this – there's no guarantee that every project uses the same nomenclature for denoting beta versions, but that said, the release toolkit is mostly used by a8c. There might be a middle ground of some kind? :)

Copy link
Contributor

Choose a reason for hiding this comment

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

There are already a lot of assumptions hardcoded in the release-toolkit about this versioning scheme, and in fact, there are also helpers that do that exact check in the release toolkit as well: see this Helper method — which is used for example by this precheck action.

So exposing this as public API of the release-toolkit would definitively make sense. That would probably be a good candidate for when we get the time to address wordpress-mobile/release-toolkit#203… one day…

Copy link
Contributor

@mokagio mokagio left a comment

Choose a reason for hiding this comment

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

The build I triggered from my Mac:

  • Was incredibly fast compared to what I'm used to with WordPress 😅
  • Failed at the Google Play API level, with the expected APK specifies a version code that has already been used error

I'd say this is good to go.

@jkmassel jkmassel enabled auto-merge March 1, 2022 04:54
@jkmassel jkmassel merged commit 75b8aef into trunk Mar 1, 2022
@jkmassel jkmassel deleted the add/buildkite-release-builds branch March 1, 2022 04:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: tooling Anything that involves building & maintaining the project, including scripts, `Fastfile`, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants