The publish, deploy, and release process is annoying enough at the moment that I avoid doing it frequently. Let's automate most of it to reduce the friction
1.9 KiB
This document describes processes needed by admins of this repository.
At time of writing, deployment assumes you're running macOS. It probably works if you're on a linux, and almost definitely does not work on Windows.
Test the release
Speedscope is tested in CI, so all the automated tests should be passing. We'll just be doing a few sanity checks to make sure the build & deployment machinery is working correctly.
scripts/prepare-test-installation.sh
This will do a mock publish & installation to ensure that the version we're about to publish is going to
work. At the end of this command, it should echo a cd
command to run in your shell
to switch to the installation directory. Something like this:
Run the following command to switch into the test directory
cd /var/folders/l0/qtd9z14973s2tw81vmzwkyp00000gp/T/speedscope-test-installation.9Ssdd2PZ/package
Run this command, to switch to the test directory.
Inside of here, run bin/cli.js
. This should open a copy of speedscope in browser.
Try importing a profile from disk via the browse button and make sure it works.
Next, try running bin/cli.js dist/release/perf-vertx*
. This should immediately open
speedscope in browser, and the perf-vertx file should load immediately.
Create & publish the new release
Ensure you have the Github CLI tools installed and you're authenticated. Try running the following if you're unsure:
gh auth status
npm whoami
Once ready to publish, run:
scripts/publish-and-deploy.sh
Verifying the release
To verify that the npm publish was successful, run npm install -g speedscope
.
Try speedscope
, which should open speedscope in browser.
Try speedscope sample/profiles/stackcollapse/simple.txt
, which should immediately load the profile.
To verify the website has finished deploying, check the version number shown in the console of https://www.speedscope.app/