-
Notifications
You must be signed in to change notification settings - Fork 142
CI: New Manual workflow for testing 2 builds #744
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
Open
bbpetukhov
wants to merge
115
commits into
bloomberg:main
Choose a base branch
from
bbpetukhov:manual-ci
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
d2706a1
to
938c9ec
Compare
… -- add new "name" parameter to the build ubuntu workflow and use it as part of artifact_key Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
…erions, no need to specify path per node Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
…pgraded Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
…ge individual nodes Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
kaikulimu
reviewed
Jun 24, 2025
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Signed-off-by: Dmitrii Petukhov <dpetukhov@bloomberg.net>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Before accepting this PR, it's possible for run the new workflow from here: https://github.com/bbpetukhov/blazingmq/actions/workflows/manual.yaml (only collaborators of the fork)
Describe your changes
Added a new workflow to be run manually. It builds 2 versions of BlazingMQ broker binaries and runs a new batch of integration tests which covers broker binary upgrade via stop/restart.
The build job is extracted into a separed file and reused between existing Tests workflow and a new manually run one.
In case of UTs cmake "all.t" target generated huge size of build artifacts (~1GB), so the upload is skipped and tests are run right away as a step in the build job.
Git refs for builds 1 and 2 can be specified via input params.
Integration tests sources are downloaded from the selected Branch ("Use workflow from").
Switch from cache to Artifacts
The build_ubuntu workflow migrated from storing build in cache to uploading as artifact. According to the documentation cache is ideal for storing results for later sharing them between workflow runs. Existing "Dependencies" workflow uploads built deps into cache to be shared in other build workflows -- this is a solid application for cache.
However for sharing data between jobs in a single workflow runs it's advised to store them as artifacts, because upload/download operations are synchronous (once data is uploaded, it's immediately available to be downloaded in the next job). Meanwhile cache save/restore operations are asynchronous, thus the results may not be immediately available for restore in the next job. Also due to security restrictions experiments showed that it's impossible to restore from 2 caches in one job which is necessary to get 2 versions of broker.
Total storage for artifacts is unlimited for public repositories.
Making the builds publicly available for download does not seem like a vulnerability, because since the repo is public, similar workflow can be easily simulated in another public fork.
However the downside of artifacts is that being a plain .zip archive it drops execute permissions for broker and bmq-tool binaries. Execute permissions have to be restored after artifact download.
Testing performed
There are 2 new tests running cluster of 3 nodes.
The first test starts the cluster with all nodes running version 1, then cluster is stopped, all nodes upgrade to version 2 and restarts again.
The second test upgrades nodes one by one every time restarting the whole cluster.
Additional context