-
Notifications
You must be signed in to change notification settings - Fork 12.5k
Triggering TypeScript Bot
Daniel Rosenwasser edited this page Jun 28, 2021
·
19 revisions
If you're a TS maintainer, you can respond to a PR with a comment similar to
@typescript-bot test this
to trigger a specialized on-demand build on the PR.
The currently recognized commands are:
-
test this
- This runs the internal RWC suite against the PR (this takes around 20 minutes). If the tests fail, a diff will be produced and a PR against the internal RWC suite repo will be made with the diff. -
run dt
- The runs the definitely typed linter using the PR TS build sharded across 4 worker containers (this takes around 25 minutes). -
run dt slower
- This is the same as the above, but only on a single worker (this takes around 90 minutes). This is useful if the results aren't needed promptly and the build queue is busy. -
user test this
- This runs the nightly-testeduser
suite against the PR (this takes around 30 minutes). If this fails, the bot will attempt to open a PR against the triggering PR with the baseline diffs - this will only succeed if the PR is for a branch onMicrosoft/TypeScript
, or if the fork has PRs enabled (so, bit of advice if you plan to use this on your branches: enable PRs on your personal fork). -
user test this slower
- The same as the above, but run on only a single container, meaning it takes around 1h 30m. The nightly run is run using this build. -
perf test
- This queues a build on our perf server using the code from the PR - once started (which will only happen once any currently running build is done), this takes around 40 minutes. The bot should post the results of the perf test run back into the triggering PR once done. -
perf test faster
- This is the same as the above, but only runs the node 12 host tests - so the results should be less complete, but come back in around 1/3rd the time. -
pack this
- This creates a build which does a build, runs an LKG, runs normal tests, and then packs the result into an installable tarball (which can be downloaded from the build artifacts on the azure pipelines build status page), perfect for installing withnpm i <URL to tarball>
to test with. -
cherry-pick this to branchname
- This launches a task to squash the commits from the PR and then open a new PR that cherry-picks the change into branchbranchname
. This takes about 5 minutes as the build agent needs to clone the input PR. The bot should reply if something goes wrong, or otherwise once the new PR is open. -
cherry-pick this to branchname and LKG
- Same as above, but an LKG commit will be added onto the PR after the squashed cherry-pick commit. -
run repros
- Triggers inline code repro workflow
In addition, there are a small suite of commands which work in any comment and relate to release management. You can see how these are typically used in our documented comment command sequence:
-
create release-X.Y
This makes arelease-X.Y
branch (replaceX.Y
with your desired version) with thepackage.json
version set toX.Y.0-beta
, thecorePublic
versionMajorMinor
set toX.Y
, and the fullts.version
string set toX.Y.0-beta
, and updates the accompanying baselines. An LKG is then performed. This new branch is directly pushed tomicrosoft/TypeScript
. In short, this fully sets up a new release branch to be ready to publish a beta. -
bump release-X.Y
This bumps the version (0-beta
->1-rc
->2
->3
and so on) on the specified branch and captures a new LKG, essentially preparing the branch for a new release. -
sync release-X.Y
This mergesmaster
into the specified branch; this is useful for syncing the branch withmaster
in the period between the beta and rc.
A single comment may contain multiple commands, so long as each is prefixed with a call to @typescript-bot
.
The source of the webhook running the bot is currently available here.
News
Debugging TypeScript
- Performance
- Performance-Tracing
- Debugging-Language-Service-in-VS-Code
- Getting-logs-from-TS-Server-in-VS-Code
- JavaScript-Language-Service-in-Visual-Studio
- Providing-Visual-Studio-Repro-Steps
Contributing to TypeScript
- Contributing to TypeScript
- TypeScript Design Goals
- Coding Guidelines
- Useful Links for TypeScript Issue Management
- Writing Good Design Proposals
- Compiler Repo Notes
- Deployment
Building Tools for TypeScript
- Architectural Overview
- Using the Compiler API
- Using the Language Service API
- Standalone Server (tsserver)
- TypeScript MSBuild In Depth
- Debugging Language Service in VS Code
- Writing a Language Service Plugin
- Docker Quickstart
FAQs
The Main Repo