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

ci: release automation #197

Merged
merged 9 commits into from
Feb 15, 2023
Merged

ci: release automation #197

merged 9 commits into from
Feb 15, 2023

Conversation

v1v
Copy link
Member

@v1v v1v commented Feb 6, 2023

What

Use Buildkite to run the releases interacting with Maven central.

Why

Jenkins is deprecated hence we use Buildkite for releases, while we use GitHub actions for the CI.

Buildkite will act as a provisioner, pretty much:

  • Request a GCP VM
  • Access vault
  • Run the release.sh or snapshot.sh scripts
  • Notify the result in Slack.

As a consequence, this project will contain all the moving pieces for the release, including the scripts needed for the releases/snapshots.

Use cases

  1. Releases will be triggered manually, using the GitHub actions UI.
  2. Snapshots will happen on merge commits automatically and also supported with manually trigger using the GH actions UI

Tasks

  • Create jobs in Buildkite
  • Create vault secrets
  • Mask passwords/secrets using the Buildkite hooks.
  • Agree with the @elastic/apm-agent-java team so they are aware of this particular automation.

@v1v v1v marked this pull request as ready for review February 7, 2023 10:18
@v1v v1v requested review from a team February 7, 2023 10:19
@v1v v1v self-assigned this Feb 7, 2023
@@ -0,0 +1,13 @@
agents:
provider: "gcp"
Copy link
Member

Choose a reason for hiding this comment

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

nit: does this need to run on gcp?

from my experience with playing around with buildkite, this provider takes a bit longer to get scheduled than other workers.

Copy link
Member Author

Choose a reason for hiding this comment

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

It is needed, since the existing default containers don't have the whole OS setup, such as gpg.

Potentially, we could create a container image to support that particular use case, but as it works with GCP workers, I'd consider that particular implementation to be done in a follow up. So we can keep migrating other projects.

.buildkite/hooks/pre-command Outdated Show resolved Hide resolved
@v1v v1v requested a review from jackshirazi February 14, 2023 17:17
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.

3 participants