mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 19:21:50 +00:00
Closes https://github.com/orgs/sourcegraph/projects/240?pane=issue&itemId=18474973 This PR does a few things: 1. Automates the significant versions (major / minor) src-cli release 2. Automates the src-cli changelog 3. Provides a command to validate all distribution channels have the updated version There is some sequencing trouble in how src-cli is released that is worth explaining here. So when we perform a release of sourcegraph we also bake in a minimum src-cli version constant, as well as the documentation for that version of src-cli. This documentation is actually generated from the src-cli tool itself, and naively requires the latest version is available on github. That's something I don't want to interrupt the release process, so in this PR we do something slightly different. First, we assume that the head of main is the release commit, which is reasonable since we are the ones performing the release. Second, we checkout src-cli and use the local checkout to bake the documentation into the sourcegraph release. Third, we perform the src-cli release by tagging the build and pushing the tag. To do that this PR also adds a new optional flag into the go program that installs the software to pass a local path instead of downloading the latest release. For some quality of life we autodetect the latest src-cli version from the src-cli repo instead of assuming it's always the same as the Sourcegraph version. This is just to hedge against any future divergence. Here is an example [PR](https://github.com/sourcegraph/sourcegraph/pull/48573) after running the update command (the diff won't necessarily reflect a real diff) Using the validate command we can check that github, brew, and npm all have the latest release that matches the expected version. ## Test plan To test this I had to do a few janky things: 1. replace the clone path with a constant src-cli path (I just cloned it once, then grabbed the directory) 2. replace the actual ./release.sh script with something that won't release. I just edited the script to echo and return early after all the validations in the same repo above Here is the output showing the diff and the release script <img width="1112" alt="image" src="https://user-images.githubusercontent.com/5090588/222289405-bc1a0632-6af0-4e72-b883-a1cf786f0aec.png"> <!-- All pull requests REQUIRE a test plan: https://docs.sourcegraph.com/dev/background-information/testing_principles --> To test verify-src-cli simply run the command: <img width="953" alt="CleanShot 2023-03-02 at 11 35 35@2x" src="https://user-images.githubusercontent.com/5090588/222552782-72ae3e9f-03dd-4433-9a2b-7356df33849c.png"> And finally a minified example of the full flow <img width="944" alt="CleanShot 2023-03-02 at 13 55 11@2x" src="https://user-images.githubusercontent.com/5090588/222552934-7b49aa80-a2ad-4f54-9f27-ab8bf3d1408a.png"> |
||
|---|---|---|
| .. | ||
| explanations | ||
| how-tos | ||
| references | ||
| index.md | ||
| quickstart.md | ||