Skip to content

Commit 04e21ef

Browse files
authored
Add scheduling profiler deployment CI job (facebook#19874)
* Add vercel to scheduling profiler dev deps * Add vercel.json * Add CD job * Add CD setup instructions
1 parent ded2a83 commit 04e21ef

File tree

5 files changed

+152
-3
lines changed

5 files changed

+152
-3
lines changed

.circleci/config.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,24 @@ jobs:
312312
tar -zcvf ../../../build/devtools-scheduling-profiler.tgz .
313313
- store_artifacts:
314314
path: ./build/devtools-scheduling-profiler.tgz
315+
- persist_to_workspace:
316+
root: packages/react-devtools-scheduling-profiler
317+
paths:
318+
- dist
319+
320+
deploy_devtools_scheduling_profiler:
321+
docker: *docker
322+
environment: *environment
323+
steps:
324+
- checkout
325+
- attach_workspace:
326+
at: packages/react-devtools-scheduling-profiler
327+
- *restore_node_modules
328+
- run:
329+
name: Deploy
330+
command: |
331+
cd packages/react-devtools-scheduling-profiler
332+
yarn vercel deploy dist --prod --confirm --token $SCHEDULING_PROFILER_DEPLOY_VERCEL_TOKEN
315333
316334
# These jobs are named differently so we can distinguish the stable and
317335
# and experimental artifacts
@@ -551,6 +569,13 @@ workflows:
551569
- build_devtools_scheduling_profiler:
552570
requires:
553571
- yarn_build
572+
- deploy_devtools_scheduling_profiler:
573+
requires:
574+
- build_devtools_scheduling_profiler
575+
filters:
576+
branches:
577+
only:
578+
- master
554579

555580
fuzz_tests:
556581
triggers:
Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
# Experimental React Concurrent Mode Profiler
22

3-
- Deployed at: https://react-scheduling-profiler.vercel.app
3+
https://react-devtools-scheduling-profiler.vercel.app/
4+
5+
## Setting up continuous deployment with CircleCI and Vercel
6+
7+
These instructions are intended for internal use, but may be useful if you are setting up a custom production deployment of the scheduling profiler.
8+
9+
1. Create a Vercel token at https://vercel.com/account/tokens.
10+
2. Configure CircleCI:
11+
1. In CircleCI, navigate to the repository's Project Settings.
12+
2. In the Advanced tab, ensure that "Pass secrets to builds from forked pull requests" is set to false.
13+
3. In the Environment Variables tab, add the Vercel token as a new `SCHEDULING_PROFILER_DEPLOY_VERCEL_TOKEN` environment variable.
14+
15+
The Vercel project will be created when the deploy job runs.

packages/react-devtools-scheduling-profiler/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"html-webpack-plugin": "^4.3.0",
2727
"style-loader": "^1.2.1",
2828
"url-loader": "^4.1.0",
29+
"vercel": "^20.1.0",
2930
"webpack": "^4.44.1",
3031
"webpack-cli": "^3.3.12",
3132
"webpack-dev-server": "^3.11.0",
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"name": "react-devtools-scheduling-profiler"
3+
}

yarn.lock

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2360,6 +2360,35 @@
23602360
"@typescript-eslint/types" "4.1.0"
23612361
eslint-visitor-keys "^2.0.0"
23622362

2363+
"@vercel/build-utils@2.5.1":
2364+
version "2.5.1"
2365+
resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-2.5.1.tgz#2f687c2d82464dd85e0ed8130bc01e5dac9b11a4"
2366+
integrity sha512-689ov8fGrgVnLwPbJUvgUKdSTseZiOMobR4XoZjmSmeF8+gaOpycsdGuVFzNtdFneUiQWO/k5AkY5diZj8fNgg==
2367+
2368+
"@vercel/go@1.1.6":
2369+
version "1.1.6"
2370+
resolved "https://registry.yarnpkg.com/@vercel/go/-/go-1.1.6.tgz#45ac3a6bd98a15b8bf1028b8c141a51fd971ac15"
2371+
integrity sha512-swA2crS08fkPmw4UkR9yjmoL8FOCzuNHLFDqj8oM1V9ni610ibJ7Xk57jI8uyS7bTecQVh8VUxihb+SF0GT+aw==
2372+
2373+
"@vercel/node@1.8.1":
2374+
version "1.8.1"
2375+
resolved "https://registry.yarnpkg.com/@vercel/node/-/node-1.8.1.tgz#aa0a04f425638874d19be64f7905018ef6f9b1c5"
2376+
integrity sha512-vQsYMrulghMaHEKbqxJCQPfHrGEBmYmQMLYrx+m8kolKDq1LQDWFx2MRh4DyMnGfYSoYoW5PI2HP7NAfbEjzmg==
2377+
dependencies:
2378+
"@types/node" "*"
2379+
ts-node "8.9.1"
2380+
typescript "3.9.3"
2381+
2382+
"@vercel/python@1.2.3":
2383+
version "1.2.3"
2384+
resolved "https://registry.yarnpkg.com/@vercel/python/-/python-1.2.3.tgz#23ebb71c753fe1cc75fe186c89fc0af04c950191"
2385+
integrity sha512-DJRvL6bmt4m0xrkzSKUbP8mK57YSDdTBWoo0JYyXq/o2golQrv/wQTalbNchd4P8NhVL3mZuk/1JNYuv5u1rKQ==
2386+
2387+
"@vercel/ruby@1.2.4":
2388+
version "1.2.4"
2389+
resolved "https://registry.yarnpkg.com/@vercel/ruby/-/ruby-1.2.4.tgz#60e0a91d7a1a730a7ecdbc6e095acb95f28f24be"
2390+
integrity sha512-g19vrrmJ4MTJCRB/bvx8DahIsml1iPn7wsdHf5k3QVN6lT0dlDILSBwpERC4hqzndimaApsmWOfjYtY9/L6+tQ==
2391+
23632392
"@webassemblyjs/ast@1.9.0":
23642393
version "1.9.0"
23652394
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
@@ -2952,6 +2981,11 @@ archiver@~2.1.0:
29522981
tar-stream "^1.5.0"
29532982
zip-stream "^1.2.0"
29542983

2984+
arg@^4.1.0:
2985+
version "4.1.3"
2986+
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
2987+
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
2988+
29552989
argparse@^1.0.7:
29562990
version "1.0.10"
29572991
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -4402,7 +4436,7 @@ configstore@^3.0.0:
44024436
write-file-atomic "^2.0.0"
44034437
xdg-basedir "^3.0.0"
44044438

4405-
configstore@^5.0.0:
4439+
configstore@^5.0.0, configstore@^5.0.1:
44064440
version "5.0.1"
44074441
resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
44084442
integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
@@ -5108,6 +5142,11 @@ diff@4.0.1:
51085142
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
51095143
integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
51105144

5145+
diff@^4.0.1:
5146+
version "4.0.2"
5147+
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
5148+
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
5149+
51115150
diffie-hellman@^5.0.0:
51125151
version "5.0.3"
51135152
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
@@ -5559,6 +5598,11 @@ escalade@^3.0.2:
55595598
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
55605599
integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
55615600

5601+
escape-goat@^2.0.0:
5602+
version "2.1.1"
5603+
resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
5604+
integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
5605+
55625606
escape-html@~1.0.3:
55635607
version "1.0.3"
55645608
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -9293,6 +9337,11 @@ make-dir@^3.0.0:
92939337
dependencies:
92949338
semver "^6.0.0"
92959339

9340+
make-error@^1.1.1:
9341+
version "1.3.6"
9342+
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
9343+
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
9344+
92969345
make-fetch-happen@^7.1.0:
92979346
version "7.1.0"
92989347
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-7.1.0.tgz#22038954801048ac598c72e0f0c239e42d97fa2e"
@@ -11163,6 +11212,13 @@ punycode@^2.1.0, punycode@^2.1.1:
1116311212
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1116411213
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1116511214

11215+
pupa@^2.0.1:
11216+
version "2.0.1"
11217+
resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726"
11218+
integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==
11219+
dependencies:
11220+
escape-goat "^2.0.0"
11221+
1116611222
qs@6.7.0:
1116711223
version "6.7.0"
1116811224
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
@@ -12499,7 +12555,7 @@ source-map-support@0.5.16:
1249912555
buffer-from "^1.0.0"
1250012556
source-map "^0.6.0"
1250112557

12502-
source-map-support@0.5.19, source-map-support@~0.5.12:
12558+
source-map-support@0.5.19, source-map-support@^0.5.17, source-map-support@~0.5.12:
1250312559
version "0.5.19"
1250412560
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1250512561
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
@@ -13343,6 +13399,17 @@ truncate-utf8-bytes@^1.0.0:
1334313399
dependencies:
1334413400
utf8-byte-length "^1.0.1"
1334513401

13402+
ts-node@8.9.1:
13403+
version "8.9.1"
13404+
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5"
13405+
integrity sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==
13406+
dependencies:
13407+
arg "^4.1.0"
13408+
diff "^4.0.1"
13409+
make-error "^1.1.1"
13410+
source-map-support "^0.5.17"
13411+
yn "3.1.1"
13412+
1334613413
tslib@^1.10.0:
1334713414
version "1.13.0"
1334813415
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
@@ -13446,6 +13513,11 @@ typedarray@^0.0.6:
1344613513
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1344713514
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
1344813515

13516+
typescript@3.9.3:
13517+
version "3.9.3"
13518+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a"
13519+
integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==
13520+
1344913521
typescript@^3.7.5:
1345013522
version "3.7.5"
1345113523
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
@@ -13596,6 +13668,25 @@ update-notifier@4.0.0:
1359613668
semver-diff "^3.1.1"
1359713669
xdg-basedir "^4.0.0"
1359813670

13671+
update-notifier@4.1.0:
13672+
version "4.1.0"
13673+
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3"
13674+
integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==
13675+
dependencies:
13676+
boxen "^4.2.0"
13677+
chalk "^3.0.0"
13678+
configstore "^5.0.1"
13679+
has-yarn "^2.1.0"
13680+
import-lazy "^2.1.0"
13681+
is-ci "^2.0.0"
13682+
is-installed-globally "^0.3.1"
13683+
is-npm "^4.0.0"
13684+
is-yarn-global "^0.3.0"
13685+
latest-version "^5.0.0"
13686+
pupa "^2.0.1"
13687+
semver-diff "^3.1.1"
13688+
xdg-basedir "^4.0.0"
13689+
1359913690
update-notifier@^2.1.0:
1360013691
version "2.5.0"
1360113692
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
@@ -13776,6 +13867,18 @@ vary@~1.1.2:
1377613867
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1377713868
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
1377813869

13870+
vercel@^20.1.0:
13871+
version "20.1.0"
13872+
resolved "https://registry.yarnpkg.com/vercel/-/vercel-20.1.0.tgz#366c39892455f5fff9b1d31db6e6ac1dff436453"
13873+
integrity sha512-fOYq2X6o157hOBbyxU9VcM2pCHa6cAxvkA731N9FEw8MyMnPC7zJRgFQ/kYJ0oisjlKsmm2A1ryrLEz3KLIDFw==
13874+
dependencies:
13875+
"@vercel/build-utils" "2.5.1"
13876+
"@vercel/go" "1.1.6"
13877+
"@vercel/node" "1.8.1"
13878+
"@vercel/python" "1.2.3"
13879+
"@vercel/ruby" "1.2.4"
13880+
update-notifier "4.1.0"
13881+
1377913882
verror@1.10.0:
1378013883
version "1.10.0"
1378113884
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -14551,6 +14654,11 @@ yauzl@2.4.1:
1455114654
dependencies:
1455214655
fd-slicer "~1.0.1"
1455314656

14657+
yn@3.1.1:
14658+
version "3.1.1"
14659+
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
14660+
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
14661+
1455414662
zip-dir@1.0.2:
1455514663
version "1.0.2"
1455614664
resolved "https://registry.yarnpkg.com/zip-dir/-/zip-dir-1.0.2.tgz#253f907aead62a21acd8721d8b88032b2411c051"

0 commit comments

Comments
 (0)