mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-12 00:37:19 +10:00
Compare commits
869 Commits
1.77.2.231
...
insider
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f18978fd4 | ||
|
|
5b99338d80 | ||
|
|
7e281e2511 | ||
|
|
31837ad2a9 | ||
|
|
40a5cd74e9 | ||
|
|
4338c0d091 | ||
|
|
e9ef32366d | ||
|
|
8eabf502e0 | ||
|
|
693c0a5de9 | ||
|
|
9e80af72b7 | ||
|
|
07ebfc0b13 | ||
|
|
397bef3984 | ||
|
|
48c8ddf405 | ||
|
|
0307465fec | ||
|
|
ca017a7861 | ||
|
|
d8b2d1464f | ||
|
|
4898eb90eb | ||
|
|
8077599387 | ||
|
|
2c31dca7e2 | ||
|
|
cb68d26217 | ||
|
|
43be3f1816 | ||
|
|
a1bf8e32bc | ||
|
|
5786ae0d99 | ||
|
|
5f4aa29275 | ||
|
|
d3d93691db | ||
|
|
803457343a | ||
|
|
2321c2c695 | ||
|
|
8384dd0980 | ||
|
|
e8a8565bdb | ||
|
|
414aa4862b | ||
|
|
81a5f96569 | ||
|
|
a06532dfaf | ||
|
|
b369b69597 | ||
|
|
db1eeed5b2 | ||
|
|
e49b649a19 | ||
|
|
44cb5e2073 | ||
|
|
3d7e85c307 | ||
|
|
0ff5473194 | ||
|
|
5b5008e570 | ||
|
|
c95b880148 | ||
|
|
12ee0524bf | ||
|
|
88a290aa68 | ||
|
|
e8c2ca40dd | ||
|
|
419245db4b | ||
|
|
ccd71421da | ||
|
|
1dec128c07 | ||
|
|
ccf4d751c8 | ||
|
|
34d6a7b4d5 | ||
|
|
ff5eff419c | ||
|
|
b4409deee2 | ||
|
|
5ea412eee4 | ||
|
|
55615878f9 | ||
|
|
be4746a775 | ||
|
|
15cc1eadd2 | ||
|
|
7d6f546461 | ||
|
|
cf38c857b2 | ||
|
|
eaeb6e6bb3 | ||
|
|
22a615e8ff | ||
|
|
399b022266 | ||
|
|
be3bb0ad5b | ||
|
|
6b229ed069 | ||
|
|
325e7a79e9 | ||
|
|
273901d3c2 | ||
|
|
8a26e54d3e | ||
|
|
091907f2c0 | ||
|
|
47e2863d9e | ||
|
|
91d172cd42 | ||
|
|
94f90090cb | ||
|
|
412aa78881 | ||
|
|
a199c0a529 | ||
|
|
cf437da521 | ||
|
|
e8ec5e2452 | ||
|
|
2b2bef0927 | ||
|
|
17b5b6ed50 | ||
|
|
72b795d984 | ||
|
|
71afd18e59 | ||
|
|
7d910f4077 | ||
|
|
fc8f76ad58 | ||
|
|
a5210af800 | ||
|
|
3bf7629f7a | ||
|
|
bfaa0ebd4e | ||
|
|
fe63a5a5d9 | ||
|
|
7224e53e62 | ||
|
|
962f1ac04c | ||
|
|
7656ee4017 | ||
|
|
a053a4a5c2 | ||
|
|
0079f51fe2 | ||
|
|
47c5d7d549 | ||
|
|
26fd8577a7 | ||
|
|
9931513623 | ||
|
|
de5bd6bf1f | ||
|
|
de91c92a23 | ||
|
|
c0d5246c70 | ||
|
|
63fad3ddfa | ||
|
|
d54958e349 | ||
|
|
dc3ffab8bf | ||
|
|
a80048c451 | ||
|
|
26ee7024a2 | ||
|
|
895ada1ac1 | ||
|
|
859e1f1a1c | ||
|
|
cc1a3ef5bd | ||
|
|
163fff4742 | ||
|
|
79adc487cb | ||
|
|
b69846f794 | ||
|
|
42ab5a8aa3 | ||
|
|
846096bd53 | ||
|
|
3981f5dcb8 | ||
|
|
4ecf45044e | ||
|
|
cec35aab94 | ||
|
|
6901a0ca2b | ||
|
|
ca9b356c3b | ||
|
|
8d8db1de1b | ||
|
|
53ff95933c | ||
|
|
39be6d3a95 | ||
|
|
f7de31a582 | ||
|
|
ccb2819b25 | ||
|
|
d2cdc6e515 | ||
|
|
b88fdc76f5 | ||
|
|
f2f1594771 | ||
|
|
88f558aafc | ||
|
|
11b807517c | ||
|
|
9664f9e77d | ||
|
|
5993ddb3a5 | ||
|
|
59e21c9cc6 | ||
|
|
2fccc0e2fe | ||
|
|
51ad421762 | ||
|
|
646b42473b | ||
|
|
068f270488 | ||
|
|
4ba37835b2 | ||
|
|
2487cd7ce2 | ||
|
|
75df078e52 | ||
|
|
9061e7e264 | ||
|
|
adef3f0534 | ||
|
|
dab94316d5 | ||
|
|
60b7a4640e | ||
|
|
f81d3d53ad | ||
|
|
a95e1ff14f | ||
|
|
36270ef9c3 | ||
|
|
c0ac4bd72e | ||
|
|
f60f14d085 | ||
|
|
a9167d21e2 | ||
|
|
e1f7642bcb | ||
|
|
94a6ad5495 | ||
|
|
73046b84aa | ||
|
|
22d1929f41 | ||
|
|
6264d064e4 | ||
|
|
578df58363 | ||
|
|
20382726b4 | ||
|
|
b943cab988 | ||
|
|
a69d10fa91 | ||
|
|
ac024726a3 | ||
|
|
e3c3b6fdf7 | ||
|
|
fbdc680c69 | ||
|
|
dd8511cc6b | ||
|
|
f6b143dbd6 | ||
|
|
cde9fd233a | ||
|
|
284d83b24e | ||
|
|
8cc366bb76 | ||
|
|
4c2b2b8a79 | ||
|
|
8e49f5f8b1 | ||
|
|
0ac07d6fcc | ||
|
|
bf53c50a5b | ||
|
|
d0973e3104 | ||
|
|
8e10409b4a | ||
|
|
bcd3d6bffa | ||
|
|
b3c1e8901a | ||
|
|
c2cff308aa | ||
|
|
0d1fecf0d4 | ||
|
|
5bf3fdcc05 | ||
|
|
acf298a9c2 | ||
|
|
2d9bbfb2f3 | ||
|
|
9d798626aa | ||
|
|
f574039dc4 | ||
|
|
e648323548 | ||
|
|
bc2c678d47 | ||
|
|
69fe88f58c | ||
|
|
43d4061cec | ||
|
|
471a81e89f | ||
|
|
e84017f36b | ||
|
|
e494154c9b | ||
|
|
dc302f89af | ||
|
|
0545b56f6f | ||
|
|
914f0da189 | ||
|
|
a3bf4232ba | ||
|
|
23683879d3 | ||
|
|
177bb9032d | ||
|
|
7245ccb8bd | ||
|
|
166e10c23b | ||
|
|
69fee0be29 | ||
|
|
68d5becf4d | ||
|
|
a425c2ca5d | ||
|
|
9b20ef5f08 | ||
|
|
242a448627 | ||
|
|
e298421027 | ||
|
|
51f1643852 | ||
|
|
279bb37012 | ||
|
|
2af82b8c5b | ||
|
|
930f570146 | ||
|
|
b1ee5b1428 | ||
|
|
23688ef492 | ||
|
|
fcffce5d9a | ||
|
|
3f44e3f4a3 | ||
|
|
9ffd0a3632 | ||
|
|
57832e4688 | ||
|
|
418209fe92 | ||
|
|
96af93b5de | ||
|
|
7bdf2348e1 | ||
|
|
e114e120f3 | ||
|
|
e4091b268c | ||
|
|
ed516ab087 | ||
|
|
c6eec8f00d | ||
|
|
4959ac2e25 | ||
|
|
2717404c48 | ||
|
|
ef86a20ce4 | ||
|
|
3c07d343da | ||
|
|
ae7ac2e35c | ||
|
|
29424ad4fb | ||
|
|
067a4d4e7d | ||
|
|
c31bc7e230 | ||
|
|
1d870bf372 | ||
|
|
bfdcc2257b | ||
|
|
abf3fc3fc2 | ||
|
|
5304abe421 | ||
|
|
2520a81540 | ||
|
|
4647664892 | ||
|
|
c377e8f70f | ||
|
|
fdc6d3bebc | ||
|
|
912c3f9173 | ||
|
|
0dfc93c35e | ||
|
|
6240fdfdc4 | ||
|
|
376bde0817 | ||
|
|
fe0394dea4 | ||
|
|
62554e05ac | ||
|
|
e645075872 | ||
|
|
203a782f9a | ||
|
|
2baf08383c | ||
|
|
866ffbe78e | ||
|
|
9058cdcc7d | ||
|
|
d9b77fcacc | ||
|
|
a31eb8e3dd | ||
|
|
f0ccf4ecd5 | ||
|
|
b8e20569f5 | ||
|
|
a23732caea | ||
|
|
b7b23e46c4 | ||
|
|
7be4f9ef01 | ||
|
|
7faa9a9a92 | ||
|
|
40e0612320 | ||
|
|
2b4b1ef94e | ||
|
|
a8a38988f4 | ||
|
|
19811fd824 | ||
|
|
be711f4223 | ||
|
|
0a6c00edaf | ||
|
|
f16b836998 | ||
|
|
bdee794538 | ||
|
|
dd046b275e | ||
|
|
18904d2319 | ||
|
|
f35cd2e4f9 | ||
|
|
9e38904cc5 | ||
|
|
f8462bb0a4 | ||
|
|
0fdce0c326 | ||
|
|
efd176d43d | ||
|
|
b1de0f1293 | ||
|
|
670a5ae8a6 | ||
|
|
7ef31896fd | ||
|
|
d3ac1bf13d | ||
|
|
e05bc77aff | ||
|
|
bc889a5b62 | ||
|
|
bd3f4701ad | ||
|
|
ab40f02ad6 | ||
|
|
db5536f14a | ||
|
|
61005f975b | ||
|
|
ff4a7c91a4 | ||
|
|
6931eea602 | ||
|
|
203923b6ac | ||
|
|
138b7979b4 | ||
|
|
02812dccdf | ||
|
|
dbb1e6f852 | ||
|
|
6c61163651 | ||
|
|
92b23ab7ed | ||
|
|
c7b5ab02b1 | ||
|
|
8f961b9288 | ||
|
|
8d01927a20 | ||
|
|
96d4cb9597 | ||
|
|
125e424d8d | ||
|
|
73d25f45c2 | ||
|
|
dd1773b631 | ||
|
|
892a698c11 | ||
|
|
f7f40b9f63 | ||
|
|
ec8648f4bc | ||
|
|
61a6d6c1b4 | ||
|
|
100f4c0288 | ||
|
|
5fb0752690 | ||
|
|
08ebe04167 | ||
|
|
7f17b5ca0e | ||
|
|
a64179d80b | ||
|
|
1fc99ea06a | ||
|
|
c699dfee82 | ||
|
|
68a4e26ded | ||
|
|
ab6dd4186b | ||
|
|
8884ddb324 | ||
|
|
1ce59dc161 | ||
|
|
b2ed4911fa | ||
|
|
345324bd68 | ||
|
|
a4f7e8e0e7 | ||
|
|
86336a51f4 | ||
|
|
821bc722f7 | ||
|
|
4401ea9121 | ||
|
|
8049c398bf | ||
|
|
a87892cee2 | ||
|
|
7d98a96494 | ||
|
|
fa8e51dc0d | ||
|
|
bd89e61489 | ||
|
|
1ddbacad96 | ||
|
|
479e3d8769 | ||
|
|
f30a9df3f4 | ||
|
|
f47684a94c | ||
|
|
91bb9d7184 | ||
|
|
3b764c31b7 | ||
|
|
e45f1ef420 | ||
|
|
6c5a8eb3fb | ||
|
|
bbc892183f | ||
|
|
bc47aeedce | ||
|
|
68a1ef4416 | ||
|
|
32aec3155b | ||
|
|
f9c35a6d6e | ||
|
|
c6ab439c07 | ||
|
|
e4bb5229f3 | ||
|
|
b8126f6313 | ||
|
|
83a701c025 | ||
|
|
f3959bd08b | ||
|
|
c05116e677 | ||
|
|
e93c8cd217 | ||
|
|
a9bdba172d | ||
|
|
14e40dbd37 | ||
|
|
d4b6a02c80 | ||
|
|
c6f10002f1 | ||
|
|
13633eca28 | ||
|
|
7eb89b4189 | ||
|
|
4102592509 | ||
|
|
1ed73dedda | ||
|
|
f6fc863b48 | ||
|
|
b67d4ad805 | ||
|
|
25ce08f318 | ||
|
|
ea37c213bd | ||
|
|
d285d1b68e | ||
|
|
f7ed0b2643 | ||
|
|
c8c89ba8f0 | ||
|
|
c9976ec085 | ||
|
|
b312c1742a | ||
|
|
6944a05db8 | ||
|
|
8edb591353 | ||
|
|
242452d5c9 | ||
|
|
e11db8cc6b | ||
|
|
67445281d7 | ||
|
|
0179179f72 | ||
|
|
993c7d1efa | ||
|
|
fb3d195874 | ||
|
|
1313e56599 | ||
|
|
89b4e9a712 | ||
|
|
b63c8404c3 | ||
|
|
bc784e7823 | ||
|
|
71edc8b5e2 | ||
|
|
ce9450ec98 | ||
|
|
c3ba8f9bb6 | ||
|
|
5ca1fc84d3 | ||
|
|
109d240f13 | ||
|
|
9c310cba11 | ||
|
|
addf837996 | ||
|
|
8c23c50846 | ||
|
|
336e9ce32f | ||
|
|
0af2244d05 | ||
|
|
27af1a39b3 | ||
|
|
0de1698e15 | ||
|
|
6192957778 | ||
|
|
03be485c33 | ||
|
|
b9975ba5d2 | ||
|
|
adaefe4ed5 | ||
|
|
7d6a521838 | ||
|
|
3bee276094 | ||
|
|
803289b688 | ||
|
|
2a016207cc | ||
|
|
5ef55c6c48 | ||
|
|
3150c6a9b0 | ||
|
|
ef81b3de3b | ||
|
|
05759066e3 | ||
|
|
c773d683f4 | ||
|
|
8d180a2888 | ||
|
|
b895f72f2c | ||
|
|
941e4a01a2 | ||
|
|
306c01d5cd | ||
|
|
1108d8ef70 | ||
|
|
6d7d20d5e7 | ||
|
|
30e3df2bdd | ||
|
|
a755da638b | ||
|
|
0a2efd96eb | ||
|
|
94187707d3 | ||
|
|
5094d6d12d | ||
|
|
79dfaf1991 | ||
|
|
30a637eb3f | ||
|
|
38de66d324 | ||
|
|
446d8ebc0e | ||
|
|
11f3d7c371 | ||
|
|
7fab58adba | ||
|
|
856c5e3dad | ||
|
|
624dc9436d | ||
|
|
6fdc08b665 | ||
|
|
b17a273e47 | ||
|
|
62e1bd290b | ||
|
|
a895ded49e | ||
|
|
6c79f57434 | ||
|
|
0b8e88072a | ||
|
|
d84b144ea6 | ||
|
|
b5928d7a3c | ||
|
|
50e1085c52 | ||
|
|
7bef72f48b | ||
|
|
dae0a9ebce | ||
|
|
13cedd5950 | ||
|
|
6818d7e831 | ||
|
|
2b8d91b170 | ||
|
|
092b639253 | ||
|
|
54a977bc14 | ||
|
|
097441843d | ||
|
|
e82135fa3e | ||
|
|
ddea3c8c24 | ||
|
|
fef4a9aa03 | ||
|
|
31f2fa2936 | ||
|
|
292d2783db | ||
|
|
d0d0da180d | ||
|
|
6aae07dad9 | ||
|
|
a6ae85fa52 | ||
|
|
3a9708856a | ||
|
|
52cc756ed2 | ||
|
|
1bff9fc2e9 | ||
|
|
169506fb8d | ||
|
|
91fa81be98 | ||
|
|
e53ab6ab9b | ||
|
|
5cdecc4b06 | ||
|
|
d0aed99033 | ||
|
|
33711f5a48 | ||
|
|
453b07c8c6 | ||
|
|
96905a4dec | ||
|
|
e5db309f8f | ||
|
|
e61cd2295d | ||
|
|
244841eb46 | ||
|
|
7df2a31432 | ||
|
|
93fd95feb2 | ||
|
|
7930db61b8 | ||
|
|
67fd09f6b8 | ||
|
|
573a70ede1 | ||
|
|
7ca11a2b2e | ||
|
|
8ddfccd6b8 | ||
|
|
8bcb412ec5 | ||
|
|
52601b91bf | ||
|
|
81562bbd3a | ||
|
|
1aa1ba1eba | ||
|
|
377ff77104 | ||
|
|
b9b5425af1 | ||
|
|
4317f99fc4 | ||
|
|
c4debee59f | ||
|
|
5537da3d42 | ||
|
|
e7ed2de4f8 | ||
|
|
1364ac4639 | ||
|
|
c9e2046201 | ||
|
|
e8abb85f36 | ||
|
|
023fee37a3 | ||
|
|
45927b08c7 | ||
|
|
aae1c62fe4 | ||
|
|
6cb2291016 | ||
|
|
e3a0ba975b | ||
|
|
d7e6fa1217 | ||
|
|
29779adedd | ||
|
|
d598450d02 | ||
|
|
da8a3ee91f | ||
|
|
ccec55599b | ||
|
|
5fb2dedcbd | ||
|
|
a023a24173 | ||
|
|
d736414896 | ||
|
|
1731aa55d1 | ||
|
|
cc540f9f83 | ||
|
|
fe2d6e465b | ||
|
|
77e58edfe0 | ||
|
|
2aae045dba | ||
|
|
7e79fdc303 | ||
|
|
0baf7a131d | ||
|
|
04a8a93152 | ||
|
|
820be10fd0 | ||
|
|
606a83c4c5 | ||
|
|
2b8134a202 | ||
|
|
1125a02e16 | ||
|
|
e4e4be70c9 | ||
|
|
b80aa30a35 | ||
|
|
85ce7aa131 | ||
|
|
7fbe30a3f5 | ||
|
|
9ed563921b | ||
|
|
34a8803363 | ||
|
|
33a2643e1b | ||
|
|
4418bab702 | ||
|
|
c910d1447d | ||
|
|
656d6cea58 | ||
|
|
3d2a91c693 | ||
|
|
b10b54d0be | ||
|
|
9eff6e1bc0 | ||
|
|
5db0194218 | ||
|
|
8386f6057b | ||
|
|
b4943a7ef5 | ||
|
|
773b81f25f | ||
|
|
f02532900b | ||
|
|
8aa6281b5d | ||
|
|
929efa9c89 | ||
|
|
a6cd884c37 | ||
|
|
e5d9fa5143 | ||
|
|
aa4d1fe3c9 | ||
|
|
6c5a93fd32 | ||
|
|
46b4f54548 | ||
|
|
7578449a67 | ||
|
|
95fd5b764a | ||
|
|
d5c18fc231 | ||
|
|
0489bd5ca1 | ||
|
|
d1f10c1c24 | ||
|
|
d54e101a92 | ||
|
|
826c2fab92 | ||
|
|
18ec65a491 | ||
|
|
3047fd50fb | ||
|
|
fc453f25f8 | ||
|
|
48cabed6ba | ||
|
|
5e4ba54b43 | ||
|
|
a3718a2039 | ||
|
|
30ee9c1f69 | ||
|
|
cdbf4e17bd | ||
|
|
e336b1a3ff | ||
|
|
b520aa1b9b | ||
|
|
5cb1be9c61 | ||
|
|
aa340c1b5b | ||
|
|
237be4bef0 | ||
|
|
318f111ff7 | ||
|
|
043f1c4c60 | ||
|
|
f10855ca77 | ||
|
|
be2896f6f9 | ||
|
|
ae80c0cd05 | ||
|
|
53ca646162 | ||
|
|
4aa7ec7928 | ||
|
|
c6f099228b | ||
|
|
98747a7251 | ||
|
|
5d1d56247d | ||
|
|
41b1e88740 | ||
|
|
9d70d6b0a2 | ||
|
|
a01f36bf8c | ||
|
|
7538e45f92 | ||
|
|
51f2ec84c1 | ||
|
|
092d1404e3 | ||
|
|
b70e809fb6 | ||
|
|
8451268bb4 | ||
|
|
f1bf0000b4 | ||
|
|
baa7fe4155 | ||
|
|
1709f8b501 | ||
|
|
aed67b3d81 | ||
|
|
60ebbedbf8 | ||
|
|
5a769efcb9 | ||
|
|
0c31a54dea | ||
|
|
8c9acad540 | ||
|
|
ffd7e631b0 | ||
|
|
8f2868d2ea | ||
|
|
6a38a6e9db | ||
|
|
7b846f5dd1 | ||
|
|
a652d7a26b | ||
|
|
a7c7014502 | ||
|
|
b5bbda7208 | ||
|
|
c3064a2cb3 | ||
|
|
3860f2832c | ||
|
|
8e077dc483 | ||
|
|
c703bf5868 | ||
|
|
b39a7be7a8 | ||
|
|
11b7b8dc40 | ||
|
|
e8a3ac3cab | ||
|
|
73ba20791e | ||
|
|
b6411b1af1 | ||
|
|
02a9d03154 | ||
|
|
f93746b300 | ||
|
|
0d28b4dfb7 | ||
|
|
39df447b12 | ||
|
|
ac0f6f2011 | ||
|
|
c8a5d87903 | ||
|
|
7733660b8a | ||
|
|
193d8e0a44 | ||
|
|
6c180b2903 | ||
|
|
07b7cb95cf | ||
|
|
a1f3d6ff6c | ||
|
|
ab01a1aa00 | ||
|
|
50cd49e73c | ||
|
|
4dc6ac4efb | ||
|
|
97bd0850e2 | ||
|
|
e4b7667390 | ||
|
|
6253c391d1 | ||
|
|
846ff03638 | ||
|
|
f9dd596d7b | ||
|
|
e97b042f36 | ||
|
|
27e012b8c4 | ||
|
|
4a5eac45bc | ||
|
|
218db9297e | ||
|
|
df8b53671c | ||
|
|
6f7b5f7e5b | ||
|
|
d7c458fbb3 | ||
|
|
ecb34d2fde | ||
|
|
9cde10c3c8 | ||
|
|
ec3440c945 | ||
|
|
54643d2d20 | ||
|
|
b5c6d4ed25 | ||
|
|
d7b3f79225 | ||
|
|
5260770ebf | ||
|
|
2e7169a51a | ||
|
|
fc5bb5232e | ||
|
|
b3ab572f67 | ||
|
|
914fb42eed | ||
|
|
3c21a8ca23 | ||
|
|
c25403efaa | ||
|
|
5269066280 | ||
|
|
fc5bc75ba8 | ||
|
|
6a0df191ba | ||
|
|
02883594db | ||
|
|
ed0de172c4 | ||
|
|
9959ea3883 | ||
|
|
97127baae4 | ||
|
|
eb7d54bd62 | ||
|
|
ad280d74db | ||
|
|
def8660f29 | ||
|
|
333d381b79 | ||
|
|
3d7a4ca324 | ||
|
|
6fc1f3d9ad | ||
|
|
60f14dadc8 | ||
|
|
9eab456963 | ||
|
|
9c56656f21 | ||
|
|
f4759fb36a | ||
|
|
e117bf98d5 | ||
|
|
5108f834ff | ||
|
|
694f559418 | ||
|
|
d06c8d52f8 | ||
|
|
6764917005 | ||
|
|
f309a13e49 | ||
|
|
908ad168f3 | ||
|
|
d493f78ac7 | ||
|
|
b1347db351 | ||
|
|
2f1f18834d | ||
|
|
3df8eaac79 | ||
|
|
be0dcd1712 | ||
|
|
e8021d07ee | ||
|
|
b409f3472c | ||
|
|
99f92269eb | ||
|
|
ab1a6fa244 | ||
|
|
3b86373e7c | ||
|
|
d87569085d | ||
|
|
2fff1a6f83 | ||
|
|
3187e3121f | ||
|
|
c480c943b2 | ||
|
|
0f31cbabbd | ||
|
|
a6ee6e7e7f | ||
|
|
8d023eb88b | ||
|
|
aebe54143c | ||
|
|
c11e8cb34f | ||
|
|
9ce4c29b64 | ||
|
|
a6150955be | ||
|
|
4f407ac513 | ||
|
|
5da67f762f | ||
|
|
f1d7201c3c | ||
|
|
58bf4cb91c | ||
|
|
80cfae0ef8 | ||
|
|
4d712a77a8 | ||
|
|
a4ed6272bb | ||
|
|
158d27571f | ||
|
|
1dc9cbec09 | ||
|
|
25743e2b1b | ||
|
|
15b22644df | ||
|
|
36626d3e3e | ||
|
|
4d072a64c4 | ||
|
|
db7d4c33f3 | ||
|
|
90f88ba638 | ||
|
|
a3a8234ce8 | ||
|
|
fb5f9a59e4 | ||
|
|
f2368757f3 | ||
|
|
c2fad13012 | ||
|
|
49c508607d | ||
|
|
279758278b | ||
|
|
f18abb0ab8 | ||
|
|
95db40ceb0 | ||
|
|
1341b7b7af | ||
|
|
096bb6e6d7 | ||
|
|
5ab85e4972 | ||
|
|
a54f8f25f5 | ||
|
|
12a0fa0cf6 | ||
|
|
db835abaf1 | ||
|
|
e04c06d5e3 | ||
|
|
5427f5c36a | ||
|
|
2be4e5af47 | ||
|
|
da43928fde | ||
|
|
509931a6d1 | ||
|
|
0b4117ed49 | ||
|
|
b0e8397279 | ||
|
|
76d1aa5ab3 | ||
|
|
a633e4ef15 | ||
|
|
53b09bb494 | ||
|
|
969b50bb4d | ||
|
|
f7e347f027 | ||
|
|
e23717a28a | ||
|
|
a2c4dbed20 | ||
|
|
799e20364d | ||
|
|
ad4d2c612d | ||
|
|
9fae90974b | ||
|
|
7661574791 | ||
|
|
33596505a6 | ||
|
|
4e32237f33 | ||
|
|
3cad271b5c | ||
|
|
6144fec97d | ||
|
|
3f66ba03df | ||
|
|
3465153c6e | ||
|
|
96f53366b7 | ||
|
|
1588f9cabf | ||
|
|
b5eb8aa469 | ||
|
|
8024004702 | ||
|
|
d490b06bdb | ||
|
|
799b71046d | ||
|
|
a1cae6f671 | ||
|
|
4f360377b1 | ||
|
|
2faafce844 | ||
|
|
a49d4f1de0 | ||
|
|
eea73cb564 | ||
|
|
6ada8c9026 | ||
|
|
1c424b6c05 | ||
|
|
8168609ee9 | ||
|
|
24aafd81b9 | ||
|
|
508642510a | ||
|
|
ef4d13a0c6 | ||
|
|
f09882677b | ||
|
|
0952b2f0dc | ||
|
|
0d7ded33f3 | ||
|
|
40c487fcf9 | ||
|
|
01f2c461ad | ||
|
|
56e99f2989 | ||
|
|
e159da782a | ||
|
|
ae0d209284 | ||
|
|
d6d31a6443 | ||
|
|
f3a832f6cb | ||
|
|
9cfdb0fa14 | ||
|
|
48f5958d8b | ||
|
|
b0c823fc07 | ||
|
|
4de18fae52 | ||
|
|
5039d2d09b | ||
|
|
8bb53bf173 | ||
|
|
8606615423 | ||
|
|
efca1a2c2c | ||
|
|
3b1a4e39c6 | ||
|
|
40b1d413f5 | ||
|
|
b8eac1f27b | ||
|
|
dfc41b2911 | ||
|
|
fbeaf45cdb | ||
|
|
6748d842bb | ||
|
|
e658a1cf0b | ||
|
|
f3a6b9555b | ||
|
|
2e4dbca8e6 | ||
|
|
3699c22652 | ||
|
|
32e07ef39a | ||
|
|
ce52a2931b | ||
|
|
6868dc47cd | ||
|
|
f470320501 | ||
|
|
7580fb767a | ||
|
|
49583eb39d | ||
|
|
f1fa60db6d | ||
|
|
fef49abfd5 | ||
|
|
f38ad8b6a2 | ||
|
|
b1ca680ce7 | ||
|
|
282e23dff0 | ||
|
|
fa6fbaa4e0 | ||
|
|
e727f395ba | ||
|
|
5f055bf5ae | ||
|
|
e863d764eb | ||
|
|
5e143f4297 | ||
|
|
df298f9630 | ||
|
|
0851b9abd3 | ||
|
|
5e61d7d3db | ||
|
|
fc7ef66af4 | ||
|
|
240fb384a2 | ||
|
|
8de14b5c6a | ||
|
|
dd84d4841a | ||
|
|
5290310677 | ||
|
|
fca50b1b9b | ||
|
|
75e7f71ac6 | ||
|
|
5d50317e0e | ||
|
|
b667614448 | ||
|
|
51b0ff47bc | ||
|
|
1789f03920 | ||
|
|
1861b90513 | ||
|
|
5631262eb7 | ||
|
|
2523267fed | ||
|
|
5600db3e57 | ||
|
|
4314fdae01 | ||
|
|
d7f0ff07dc | ||
|
|
5621279b19 | ||
|
|
ffebe6ddf1 | ||
|
|
4930c5a71e | ||
|
|
1c6056c2c0 | ||
|
|
c2d980b0a2 | ||
|
|
61f4931efb | ||
|
|
6333caaf8a | ||
|
|
e7f41946a4 | ||
|
|
c2894d5563 | ||
|
|
6f36a980aa | ||
|
|
9468e97c13 | ||
|
|
a631bc594c | ||
|
|
13a608979c | ||
|
|
025a078b3b | ||
|
|
f51c90526f | ||
|
|
61e44afbc4 | ||
|
|
63dc9d739b | ||
|
|
1e41cef8a6 | ||
|
|
b9cfdf370d | ||
|
|
a8262e5152 | ||
|
|
d468b7a1e0 | ||
|
|
0b2fc64a3b | ||
|
|
8dcc87596b | ||
|
|
0810ba2404 | ||
|
|
79baded01d | ||
|
|
17f154098d | ||
|
|
1c0c30e6d6 | ||
|
|
06e05f233a | ||
|
|
b4318d78a0 | ||
|
|
3e1420722c | ||
|
|
9a210dc964 | ||
|
|
11083b9a1b | ||
|
|
d6b7880a05 | ||
|
|
3fa7f2179b | ||
|
|
d06d8127d5 | ||
|
|
02d21f5264 | ||
|
|
7710a09830 | ||
|
|
599eb2adc9 | ||
|
|
e8161f6e4f | ||
|
|
31b5e5b919 | ||
|
|
ff05d093c9 | ||
|
|
08114ab943 | ||
|
|
a17ae154cc | ||
|
|
272566cc25 | ||
|
|
d3db3c1f52 | ||
|
|
bd8b0d5920 | ||
|
|
aac82d75f4 | ||
|
|
c66d9b7edc | ||
|
|
73f7d062da | ||
|
|
c9b8e2f5a5 | ||
|
|
6f03ab0ba1 | ||
|
|
fad378871b | ||
|
|
3050fad108 | ||
|
|
f7fc439526 | ||
|
|
7c294be474 | ||
|
|
dfa2100471 | ||
|
|
443107bfa5 | ||
|
|
2af05c9f5b | ||
|
|
4b237cbd3c | ||
|
|
b11613470e | ||
|
|
b019f9c25a | ||
|
|
e2bf570707 | ||
|
|
a2aed6a9e7 | ||
|
|
dc1e3961c3 | ||
|
|
272f67d95b | ||
|
|
7afbfe03ad | ||
|
|
94ab319d86 | ||
|
|
6137a9fcc5 | ||
|
|
8661322052 | ||
|
|
84aabe12e3 | ||
|
|
99da974ce5 | ||
|
|
033a6bdf30 | ||
|
|
9dbdd411a0 | ||
|
|
31a42d485b | ||
|
|
89d3113d66 |
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -14,7 +14,7 @@ A clear and concise description of what the bug is.
|
||||
- [ ] This bug doesn't happen if I use Microsoft's Visual Studio Code. It only happens in VSCodium.
|
||||
|
||||
**Please confirm that the issue/resolution isn't already documented**
|
||||
- [ ] I checked [the Docs page](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) and my issue is not mentioned there.
|
||||
- [ ] I checked [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) and my issue is not mentioned there.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1
.github/dependabot.yml
vendored
1
.github/dependabot.yml
vendored
@@ -7,5 +7,6 @@ version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
target-branch: insider
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
606
.github/workflows/insider-linux.yml
vendored
606
.github/workflows/insider-linux.yml
vendored
@@ -3,27 +3,36 @@ name: insider-linux
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
description: Force update version
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [insider]
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
BINARY_NAME: codium-insiders
|
||||
DISABLE_UPDATE: 'yes'
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
@@ -31,8 +40,6 @@ env:
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
@@ -41,169 +48,437 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
dependencies:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
|
||||
# - vscode_arch: arm64
|
||||
# image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Install remote dependencies (x64)
|
||||
env:
|
||||
npm_config_arch: x64
|
||||
run: ./install_remote_dependencies.sh
|
||||
if: matrix.vscode_arch == 'x64'
|
||||
|
||||
# - name: Install remote dependencies (arm64)
|
||||
# run: |
|
||||
# set -e
|
||||
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
|
||||
# if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Save remote dependencies
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
path: ./remote-dependencies.tar
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- dependencies
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Restore remote dependencies
|
||||
uses: actions/download-artifact@v3
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
image: vscodium/vscodium-linux-build-agent:focal-armhf
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
image: vscodium/vscodium-linux-build-agent:crimson-loong64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
CHECK_REH: 'no'
|
||||
DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install dependencies
|
||||
run: ./build/linux/deps.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/linux/package_bin.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
VSCODE_SYSROOT_REPOSITORY: ${{ steps.build.outputs.VSCODE_SYSROOT_REPOSITORY }}
|
||||
VSCODE_SYSROOT_VERSION: ${{ steps.build.outputs.VSCODE_SYSROOT_VERSION }}
|
||||
VSCODE_SYSROOT_PREFIX: ${{ steps.build.outputs.VSCODE_SYSROOT_PREFIX }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_linux:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
- slug: S390X
|
||||
vscode_arch: s390x
|
||||
npm_arch: s390x
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/linux/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: reh-linux-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_alpine:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_ALPINE_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
OS_NAME: alpine
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/alpine/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: reh-alpine-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
@@ -212,12 +487,12 @@ jobs:
|
||||
include:
|
||||
- package_name: vscodium-insiders-bin
|
||||
- package_name: vscodium-insiders
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Get version
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Publish ${{ matrix.package_name }}
|
||||
@@ -231,50 +506,61 @@ jobs:
|
||||
|
||||
snap:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP_NAME: codium
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SNAP_NAME: codium-insiders
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
# if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: false
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: insider
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Check version
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
- uses: docker/setup-qemu-action@v4
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft/insider
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
# - uses: diddlesnaps/snapcraft-review-action@v1
|
||||
# with:
|
||||
# snap: ${{ steps.build.outputs.snap }}
|
||||
# isClassic: 'true'
|
||||
|
||||
- uses: snapcore/action-publish@master
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
- uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: edge
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
repo_name: ${{ env.ASSETS_REPOSITORY }}
|
||||
repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
file: ${{ steps.build.outputs.snap }}
|
||||
tag: ${{ env.RELEASE_VERSION }}
|
||||
|
||||
deploy-repo-dev:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
repository: VSCodium/repositories-linux
|
||||
event-type: deploy
|
||||
|
||||
68
.github/workflows/insider-macos.yml
vendored
68
.github/workflows/insider-macos.yml
vendored
@@ -3,18 +3,22 @@ name: insider-macos
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
description: Force update version
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [insider]
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
@@ -23,7 +27,10 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
BINARY_NAME: codium-insiders
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
@@ -37,33 +44,43 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
- runner: macos-15-intel
|
||||
vscode_arch: x64
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: insider
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: . get_pr.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 16
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.VSCODE_ARCH == 'x64'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
env:
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
@@ -75,11 +92,13 @@ jobs:
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
|
||||
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
|
||||
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
|
||||
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
@@ -90,11 +109,20 @@ jobs:
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
- name: Clean up keychain
|
||||
if: always()
|
||||
run: |
|
||||
|
||||
82
.github/workflows/insider-spearhead.yml
vendored
82
.github/workflows/insider-spearhead.yml
vendored
@@ -2,30 +2,47 @@ name: insider-spearhead
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
force_dispatch:
|
||||
type: boolean
|
||||
description: Force dispatch
|
||||
dont_update:
|
||||
type: boolean
|
||||
description: Don't update VSCode
|
||||
dont_dispatch:
|
||||
type: boolean
|
||||
description: Disable dispatch
|
||||
schedule:
|
||||
- cron: '0 7 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: [self-hosted, macOS, ARM64]
|
||||
runs-on: macos-15
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
BINARY_NAME: codium-insiders
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_ARCH: arm64
|
||||
VSCODE_LATEST: yes
|
||||
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: insider
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 16
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
@@ -33,36 +50,49 @@ jobs:
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
IS_SPEARHEAD: 'yes'
|
||||
run: . check_tags.sh
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "value=$(node build/azure-pipelines/computeYarnCacheKey.js)" >> $GITHUB_OUTPUT
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Update insider.json
|
||||
run: ./update_insider.sh
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v7
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Update upstream version
|
||||
run: ./update_upstream.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Prepare source
|
||||
run: ./prepare_src.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload sourcemaps
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./upload_sourcemaps.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Release source
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Dispatch builds
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
event-type: insider
|
||||
if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')
|
||||
|
||||
255
.github/workflows/insider-windows.yml
vendored
255
.github/workflows/insider-windows.yml
vendored
@@ -3,18 +3,22 @@ name: insider-windows
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_version:
|
||||
type: string
|
||||
description: Forced release version
|
||||
new_release:
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
schedule:
|
||||
- cron: '0 8 * * *'
|
||||
description: Force update version
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [insider]
|
||||
push:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
@@ -23,74 +27,228 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
GITHUB_BRANCH: insider
|
||||
BINARY_NAME: codium-insiders
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
env:
|
||||
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
env:
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
# - name: Setup GCC
|
||||
# uses: egor-tensin/setup-gcc@v1
|
||||
# with:
|
||||
# version: 10
|
||||
# platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
# - name: Install libkrb5-dev
|
||||
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
# if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: windows-2022
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- arm64
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
DISABLE_MSI: ${{ vars.DISABLE_INSIDER_MSI }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
run: ./build/windows/package.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Upload unsigned artifacts
|
||||
id: upload-unsigned-artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: unsigned-${{ matrix.vscode_arch }}
|
||||
path: |
|
||||
assets/*.exe
|
||||
assets/*.msi
|
||||
retention-days: 1
|
||||
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Signing
|
||||
uses: signpath/github-action-submit-signing-request@v2
|
||||
with:
|
||||
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
|
||||
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
|
||||
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
|
||||
github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
|
||||
artifact-configuration-slug: ${{ matrix.vscode_arch }}
|
||||
wait-for-completion: true
|
||||
# 3h to manually approve the request
|
||||
wait-for-completion-timeout-in-seconds: 10800
|
||||
output-artifact-directory: assets/
|
||||
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Prepare checksums
|
||||
run: ./prepare_checksums.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
@@ -101,14 +259,23 @@ jobs:
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
FORCE_UPDATE: ${{ github.event.inputs.force_version }}
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -118,7 +285,7 @@ jobs:
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
@@ -128,7 +295,7 @@ jobs:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
|
||||
- name: Release to WinGet
|
||||
uses: vedantmgoyal2009/winget-releaser@v2
|
||||
uses: vedantmgoyal9/winget-releaser@main
|
||||
with:
|
||||
identifier: ${{ env.APP_IDENTIFIER }}
|
||||
version: ${{ env.RELEASE_VERSION }}
|
||||
|
||||
5
.github/workflows/lock.yml
vendored
5
.github/workflows/lock.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Lock Issues
|
||||
name: Lock Closed Threads
|
||||
|
||||
on:
|
||||
schedule:
|
||||
@@ -8,9 +8,10 @@ jobs:
|
||||
lock:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v4
|
||||
- uses: dessant/lock-threads@v6
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-inactive-days: '90'
|
||||
pr-inactive-days: '90'
|
||||
discussion-inactive-days: '90'
|
||||
log-output: true
|
||||
|
||||
605
.github/workflows/stable-linux.yml
vendored
605
.github/workflows/stable-linux.yml
vendored
@@ -3,26 +3,38 @@ name: stable-linux
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force update version
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
force_snap:
|
||||
type: boolean
|
||||
description: Force Snap
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [stable]
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
DISABLE_UPDATE: 'yes'
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
@@ -30,8 +42,6 @@ env:
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
@@ -40,154 +50,215 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
dependencies:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
|
||||
# - vscode_arch: arm64
|
||||
# image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Install remote dependencies (x64)
|
||||
env:
|
||||
npm_config_arch: x64
|
||||
run: ./install_remote_dependencies.sh
|
||||
if: matrix.vscode_arch == 'x64'
|
||||
|
||||
# - name: Install remote dependencies (arm64)
|
||||
# run: |
|
||||
# set -e
|
||||
# docker run -e VSCODE_QUALITY -e GITHUB_TOKEN -v $(pwd):/root/vscodium vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64 /root/vscodium/install_remote_dependencies.sh
|
||||
# if: matrix.vscode_arch == 'arm64'
|
||||
|
||||
- name: Save remote dependencies
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
path: ./remote-dependencies.tar
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- dependencies
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
CHECK_ALL: 'yes'
|
||||
FORCE_LINUX_SNAP: ${{ github.event.inputs.force_snap }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Restore remote dependencies
|
||||
uses: actions/download-artifact@v3
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
name: remote-dependencies-${{ matrix.vscode_arch }}
|
||||
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
image: vscodium/vscodium-linux-build-agent:focal-armhf
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
image: vscodium/vscodium-linux-build-agent:crimson-loong64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
CHECK_REH: 'no'
|
||||
DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install dependencies
|
||||
run: ./build/linux/deps.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/linux/package_bin.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
VSCODE_SYSROOT_REPOSITORY: ${{ steps.build.outputs.VSCODE_SYSROOT_REPOSITORY }}
|
||||
VSCODE_SYSROOT_VERSION: ${{ steps.build.outputs.VSCODE_SYSROOT_VERSION }}
|
||||
VSCODE_SYSROOT_PREFIX: ${{ steps.build.outputs.VSCODE_SYSROOT_PREFIX }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
@@ -195,10 +266,224 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_linux:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
- slug: S390X
|
||||
vscode_arch: s390x
|
||||
npm_arch: s390x
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/linux/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: reh-linux-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_alpine:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_ALPINE_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
OS_NAME: alpine
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v2
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install GH
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build/alpine/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: reh-alpine-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
@@ -207,9 +492,9 @@ jobs:
|
||||
include:
|
||||
- package_name: vscodium
|
||||
package_type: stable
|
||||
- package_name: vscodium-git
|
||||
package_type: rolling
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
# - package_name: vscodium-git
|
||||
# package_type: rolling
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- name: Publish ${{ matrix.package_name }}
|
||||
@@ -223,59 +508,95 @@ jobs:
|
||||
|
||||
snap:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP_NAME: codium
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SNAP_NAME: codium
|
||||
SNAP_PUBLISHER: vscodium
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Check version
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
SNAPCRAFT_STORE_CHANNEL: ${{ vars.SNAP_STORE_CHANNEL }}
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
- uses: docker/setup-qemu-action@v4
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft/stable
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes' || env.SHOULD_DEPLOY_TO_STORE == 'yes'
|
||||
|
||||
- uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_name: ${{ env.ASSETS_REPOSITORY }}
|
||||
repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
file: ${{ steps.build.outputs.snap }}
|
||||
tag: ${{ env.RELEASE_VERSION }}
|
||||
if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes'
|
||||
|
||||
- uses: snapcore/action-publish@master
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: stable
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
release: ${{ vars.SNAP_STORE_CHANNEL }}
|
||||
if: env.SHOULD_DEPLOY_TO_STORE == 'yes'
|
||||
|
||||
deb-rpm-repo-hook:
|
||||
deploy-repo-rudy:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
env:
|
||||
GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
|
||||
run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline
|
||||
|
||||
deploy-repo-dev:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
repository: VSCodium/repositories-linux
|
||||
event-type: deploy
|
||||
|
||||
59
.github/workflows/stable-macos.yml
vendored
59
.github/workflows/stable-macos.yml
vendored
@@ -3,18 +3,22 @@ name: stable-macos
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force update version
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [stable]
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
@@ -23,6 +27,9 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
@@ -36,29 +43,43 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
- runner: macos-15-intel
|
||||
vscode_arch: x64
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: . get_pr.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 16
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.VSCODE_ARCH == 'x64'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
env:
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
@@ -70,11 +91,13 @@ jobs:
|
||||
|
||||
- name: Prepare assets
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
|
||||
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
|
||||
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
|
||||
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
@@ -90,6 +113,14 @@ jobs:
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
- name: Clean up keychain
|
||||
if: always()
|
||||
run: |
|
||||
|
||||
93
.github/workflows/stable-spearhead.yml
vendored
Normal file
93
.github/workflows/stable-spearhead.yml
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
name: stable-spearhead
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
force_dispatch:
|
||||
type: boolean
|
||||
description: Force dispatch
|
||||
dont_update:
|
||||
type: boolean
|
||||
description: Don't update VSCode
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-15
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_ARCH: arm64
|
||||
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
IS_SPEARHEAD: 'yes'
|
||||
run: . check_tags.sh
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v7
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Update upstream version
|
||||
run: ./update_upstream.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Prepare source
|
||||
run: ./prepare_src.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload sourcemaps
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./upload_sourcemaps.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Release source
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Dispatch builds
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
event-type: stable
|
||||
if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'
|
||||
251
.github/workflows/stable-windows.yml
vendored
251
.github/workflows/stable-windows.yml
vendored
@@ -3,18 +3,22 @@ name: stable-windows
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
new_release:
|
||||
type: boolean
|
||||
description: Force new Release
|
||||
force_version:
|
||||
type: boolean
|
||||
description: Force update version
|
||||
schedule:
|
||||
- cron: '0 18 * * *'
|
||||
generate_assets:
|
||||
type: boolean
|
||||
description: Generate assets
|
||||
checkout_pr:
|
||||
type: string
|
||||
description: Checkout PR
|
||||
repository_dispatch:
|
||||
types: [stable]
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
@@ -23,70 +27,227 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
node-version: 16
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
env:
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NEW_RELEASE: ${{ github.event.inputs.new_release }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
# - name: Setup GCC
|
||||
# uses: egor-tensin/setup-gcc@v1
|
||||
# with:
|
||||
# version: 10
|
||||
# platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
# - name: Install libkrb5-dev
|
||||
# run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
# if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: windows-2022
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- arm64
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
DISABLE_MSI: ${{ vars.DISABLE_STABLE_MSI }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
run: ./build/windows/package.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Upload unsigned artifacts
|
||||
id: upload-unsigned-artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: unsigned-${{ matrix.vscode_arch }}
|
||||
path: |
|
||||
assets/*.exe
|
||||
assets/*.msi
|
||||
retention-days: 1
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Signing
|
||||
uses: signpath/github-action-submit-signing-request@v2
|
||||
with:
|
||||
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
|
||||
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
|
||||
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
|
||||
github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
|
||||
artifact-configuration-slug: ${{ matrix.vscode_arch }}
|
||||
wait-for-completion: true
|
||||
# 8h to manually approve the request
|
||||
wait-for-completion-timeout-in-seconds: 28800
|
||||
output-artifact-directory: assets/
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Prepare checksums
|
||||
run: ./prepare_checksums.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
@@ -100,11 +261,19 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -113,7 +282,9 @@ jobs:
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/winget/check_version.sh
|
||||
@@ -121,7 +292,7 @@ jobs:
|
||||
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
|
||||
|
||||
- name: Release to WinGet
|
||||
uses: vedantmgoyal2009/winget-releaser@v2
|
||||
uses: vedantmgoyal9/winget-releaser@main
|
||||
with:
|
||||
identifier: ${{ env.APP_IDENTIFIER }}
|
||||
version: ${{ env.RELEASE_VERSION }}
|
||||
|
||||
6
.github/workflows/stale.yml
vendored
6
.github/workflows/stale.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
- uses: actions/stale@v10
|
||||
with:
|
||||
days-before-stale: 180
|
||||
days-before-close: 30
|
||||
@@ -21,5 +21,5 @@ jobs:
|
||||
This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
|
||||
close-issue-message: >
|
||||
This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
|
||||
exempt-issue-labels: discussion
|
||||
only-pr-labels: not-a-real-label
|
||||
exempt-issue-labels: discussion,never-stale
|
||||
only-pr-labels: needs-information
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -8,9 +8,14 @@ assets/
|
||||
build/linux/appimage/out
|
||||
build/linux/appimage/pkg2appimage.AppDir
|
||||
build/linux/appimage/pkg2appimage-*.AppImage
|
||||
build/linux/appimage/pkg2appimage.AppImage
|
||||
build/linux/appimage/squashfs-root
|
||||
build/linux/appimage/VSCodium
|
||||
build/windows/msi/releasedir
|
||||
build/windows/msi/Files*.wxs
|
||||
build/windows/msi/Files*.wixobj
|
||||
remote-dependencies.tar
|
||||
sourcemaps/
|
||||
stores/snapcraft/insider/*.snap
|
||||
stores/snapcraft/stable/*.snap
|
||||
font-size/node_modules/
|
||||
font-size/generate-css.js
|
||||
|
||||
42
CONTRIBUTING.md
Normal file
42
CONTRIBUTING.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Contributing
|
||||
|
||||
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
|
||||
|
||||
#### Table Of Contents
|
||||
|
||||
- [Code of Conduct](#code-of-conduct)
|
||||
- [Reporting Bugs](#reporting-bugs)
|
||||
- [Making Changes](#making-changes)
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
This project and everyone participating in it is governed by the [VSCodium Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
|
||||
|
||||
## Reporting Bugs
|
||||
|
||||
### Before Submitting an Issue
|
||||
|
||||
Before creating bug reports, please check existing issues and [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) as you might find out that you don't need to create one.
|
||||
When you are creating a bug report, please include as many details as possible. Fill out [the required template](https://github.com/VSCodium/vscodium/issues/new?&labels=bug&&template=bug_report.md), the information it asks for helps us resolve issues faster.
|
||||
|
||||
## Making Changes
|
||||
|
||||
If you want to make changes, please read [the Build page](./docs/howto-build.md).
|
||||
|
||||
### Building VSCodium
|
||||
|
||||
To build VSCodium, please follow the command found in the section [`Build Scripts`](./docs/howto-build.md#build-scripts).
|
||||
|
||||
### Updating patches
|
||||
|
||||
If you want to update the existing patches, please follow the section [`Patch Update Process - Semi-Automated`](./docs/howto-build.md#patch-update-process-semiauto).
|
||||
|
||||
### Add a new patch
|
||||
|
||||
- first, you need to build VSCodium
|
||||
- then use the command `./dev/patch.sh <your patch name>`, to initiate a new patch
|
||||
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh`
|
||||
- make your changes
|
||||
- press any key to continue the script `patch.sh`
|
||||
220
DOCS.md
220
DOCS.md
@@ -1,220 +0,0 @@
|
||||
# More Info
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacement-online-services)
|
||||
- [Extensions + Marketplace](#extensions-marketplace)
|
||||
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
|
||||
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
|
||||
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I fix the default file manager?](#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
- [From Linux .tar.gz](#from-linux-targz)
|
||||
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
|
||||
|
||||
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
|
||||
|
||||
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
|
||||
|
||||
We do however set the default `telemetry.enableCrashReporter` and `telemetry.enableTelemetry` values to false. You can see those by viewing your VSCodium settings.json and searching for `telemetry`.
|
||||
|
||||
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-reporting) help with explaining and toggling telemetry.
|
||||
|
||||
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
|
||||
|
||||
- Extensions auto check for updates and auto install updates
|
||||
- Searches within the app are sent to an online service for "natural language processing"
|
||||
- Updates to the app are fetched in the background
|
||||
|
||||
These can all be disabled.
|
||||
|
||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||
|
||||
### <a id="replacement-online-services"></a>Replacements to Microsoft Online Services
|
||||
|
||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
|
||||
|
||||
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L42) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
|
||||
|
||||
## <a id="extensions-marketplace"></a>Extensions + Marketplace
|
||||
|
||||
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
|
||||
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
|
||||
|
||||
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
|
||||
|
||||
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
|
||||
|
||||
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
|
||||
|
||||
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
|
||||
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
|
||||
|
||||
With the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
|
||||
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
|
||||
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
|
||||
- `VSCODE_GALLERY_CONTROL_URL=''`
|
||||
|
||||
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content:
|
||||
|
||||
- Note: set `cacheUrl` to empty string for every other extension gallery
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
||||
"itemUrl": "https://marketplace.visualstudio.com/items",
|
||||
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
|
||||
"controlUrl": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
|
||||
|
||||
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
|
||||
|
||||
There are likely other options, but the following were reported to work:
|
||||
|
||||
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
|
||||
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
|
||||
|
||||
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
|
||||
|
||||
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
|
||||
|
||||
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
|
||||
|
||||
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
|
||||
|
||||
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
|
||||
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
|
||||
|
||||
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
|
||||
|
||||
|
||||
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
### <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```jsonc
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
"ms-vscode-remote.remote-wsl",
|
||||
// ...
|
||||
],
|
||||
```
|
||||
|
||||
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
|
||||
|
||||
## <a id="migrating"></a>Migrating from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can reinstall your extensions from the Marketplace in VSCodium, or copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
- __Linux__: `$HOME/.config/Code/User`
|
||||
|
||||
You can copy these files to the VSCodium user settings folder:
|
||||
|
||||
- __Windows__: `%APPDATA%\VSCodium\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
|
||||
- __Linux__: `$HOME/.config/VSCodium/User`
|
||||
|
||||
To copy your settings manually:
|
||||
|
||||
- In Visual Studio Code, go to Settings (Command+, if on a Mac)
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending of the extension which need access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
|
||||
|
||||
In some case, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
|
||||
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
|
||||
|
||||
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
|
||||
```
|
||||
[Default Applications]
|
||||
inode/directory=org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
You can find your regular file manager with the command:
|
||||
```
|
||||
> grep directory /usr/share/applications/mimeinfo.cache
|
||||
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
For MacOS and Windows:
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'codium' command in PATH`.
|
||||
|
||||

|
||||
|
||||
This allows you to open files or directories in VSCodium directly from your terminal:
|
||||
|
||||
```bash
|
||||
~/in-my-project $ codium . # open this directory
|
||||
~/in-my-project $ codium file.txt # open this file
|
||||
```
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
|
||||
|
||||
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
|
||||
|
||||
### <a id="from-linux-targz"></a>From Linux .tar.gz
|
||||
|
||||
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
|
||||
7
FUNDING.json
Normal file
7
FUNDING.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"drips": {
|
||||
"ethereum": {
|
||||
"ownedBy": "0x7806393Cb27692C6A52eE3D5338A75cECD168219"
|
||||
}
|
||||
}
|
||||
}
|
||||
97
README.md
97
README.md
@@ -2,7 +2,7 @@
|
||||
<br />
|
||||
<img src="./icons/stable/codium_cnl.svg" alt="VSCodium Logo" width="200"/>
|
||||
<h1>VSCodium</h1>
|
||||
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
|
||||
<h3>Free/Libre Open Source Software Binaries of Visual Studio Code</h3>
|
||||
</div>
|
||||
|
||||
<div id="badges" align="center">
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
**This is not a fork. This is a repository of scripts to automatically build Microsoft's `vscode` repository into freely-licensed binaries with a community-driven default configuration.**
|
||||
**This is not a fork. This is a repository of scripts to automatically build [Microsoft's `vscode` repository](https://github.com/microsoft/vscode) into freely-licensed binaries with a community-driven default configuration.**
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -39,31 +39,46 @@
|
||||
|
||||
## <a id="download-install"></a>Download/Install
|
||||
|
||||
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
|
||||
:tada: :tada:
|
||||
Download latest release here:
|
||||
[stable](https://github.com/VSCodium/vscodium/releases) or
|
||||
[insiders](https://github.com/VSCodium/vscodium-insiders/releases)
|
||||
:tada: :tada:
|
||||
|
||||
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/docs/index.md)
|
||||
|
||||
[More info / helpful tips are here.](https://github.com/VSCodium/vscodium/blob/master/DOCS.md)
|
||||
|
||||
#### <a id="install-with-brew"></a>Install with Brew (Mac)
|
||||
|
||||
If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
|
||||
```bash
|
||||
# stable
|
||||
brew install --cask vscodium
|
||||
```
|
||||
|
||||
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/wiki/Troubleshooting#macos).*
|
||||
# insiders
|
||||
brew install --cask vscodium@insiders
|
||||
```
|
||||
|
||||
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
|
||||
|
||||
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
|
||||
```bash
|
||||
winget install vscodium
|
||||
```cmd
|
||||
:: stable
|
||||
winget install -e --id VSCodium.VSCodium
|
||||
|
||||
:: insider
|
||||
winget install -e --id VSCodium.VSCodium.Insiders
|
||||
```
|
||||
|
||||
#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)
|
||||
|
||||
If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
|
||||
```bash
|
||||
```cmd
|
||||
:: stable
|
||||
choco install vscodium
|
||||
|
||||
:: insider
|
||||
choco install vscodium-insiders
|
||||
```
|
||||
|
||||
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
|
||||
@@ -78,34 +93,45 @@ scoop install vscodium
|
||||
|
||||
VSCodium is available in the [Snap Store](https://snapcraft.io/) as [Codium](https://snapcraft.io/codium), thanks to the help of the [Snapcrafters](https://github.com/snapcrafters/codium) community.
|
||||
If your GNU/Linux distribution has support for [snaps](https://snapcraft.io/docs/installing-snapd):
|
||||
|
||||
```bash
|
||||
snap install codium --classic
|
||||
```
|
||||
|
||||
#### <a id="install-with-package-manager"></a>Install with Package Manager (GNU/Linux)
|
||||
|
||||
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
|
||||
You can always install using the downloads (deb, rpm, tar) on the releases page for [stable](https://github.com/VSCodium/vscodium/releases) or [insiders](https://github.com/VSCodium/vscodium-insiders/releases), but you can also install using your favorite package manager and get automatic updates.
|
||||
|
||||
[@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions for `apt`, `dnf` and `zypper` [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo).
|
||||
|
||||
Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
|
||||
|
||||
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
|
||||
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@binex-dsk](https://github.com/binex-dsk). An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository), maintained by [@binex-dsk](https://github.com/binex-dsk) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/) (stable) and as [vscodium-insiders-bin](https://aur.archlinux.org/packages/vscodium-insiders-bin).
|
||||
|
||||
If you want to save disk space by having VSCodium use the Electron system-wide, you also have [vscodium-electron](https://aur.archlinux.org/packages/vscodium-electron),
|
||||
maintained by [@m00nw4tch3r](https://aur.archlinux.org/account/m00nw4tch3r).
|
||||
|
||||
An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
|
||||
|
||||
#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)
|
||||
|
||||
VSCodium is (unofficially) available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium). If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
|
||||
VSCodium is available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium).
|
||||
If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
|
||||
|
||||
```bash
|
||||
flatpak install flathub com.vscodium.codium
|
||||
|
||||
flatpak run com.vscodium.codium
|
||||
```
|
||||
|
||||
## <a id="build"></a>Build
|
||||
|
||||
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
|
||||
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
|
||||
|
||||
## <a id="why"></a>Why Does This Exist
|
||||
|
||||
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
This repository contains build files to generate free release binaries of Microsoft's Visual Studio Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
|
||||
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
|
||||
@@ -115,7 +141,7 @@ Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS li
|
||||
|
||||
This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__
|
||||
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed Visual Studio Code.
|
||||
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:
|
||||
|
||||
@@ -131,13 +157,17 @@ Microsoft's build process (which we are running to build the binaries) does down
|
||||
|
||||
### Documentation
|
||||
|
||||
For more information on getting all the telemetry disabled and tips for migrating from Visual Studio Code to VSCodium, have a look at this [Docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) page.
|
||||
For more information on getting all the telemetry disabled, tips for migrating from Visual Studio Code to VSCodium and more, have a look at [the Docs page](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) page.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
If you have any issue, please check [the Troubleshooting page](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md) or the existing issues.
|
||||
|
||||
### Extensions and the Marketplace
|
||||
|
||||
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions-marketplace) section on the Docs page for more details.
|
||||
According to the Visual Studio Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for Visual Studio Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
|
||||
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
|
||||
### How are the VSCodium binaries built?
|
||||
|
||||
@@ -148,22 +178,19 @@ The builds are run every day, but exit early if there isn't a new release from M
|
||||
## <a id="supported-platforms"></a>Supported Platforms
|
||||
|
||||
The minimal version is limited by the core component Electron, you may want to check its [platform prerequisites](https://www.electronjs.org/docs/latest/development/build-instructions-gn#platform-prerequisites).
|
||||
- [x] macOS (`zip`, `dmg`) OS X 10.10 or newer x64
|
||||
|
||||
- [x] macOS (`zip`, `dmg`) macOS 10.15 or newer x64
|
||||
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64
|
||||
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)
|
||||
- [x] GNU/Linux x86 (`deb`, `rpm`, `tar.gz`) ([up to v1.35.1](https://code.visualstudio.com/updates/v1_36#_linux-32bit-support-ends))
|
||||
- [x] GNU/Linux arm64 (`deb`, `tar.gz`)
|
||||
- [x] GNU/Linux armhf (`deb`, `tar.gz`)
|
||||
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`)
|
||||
- [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
|
||||
- [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
|
||||
- [x] GNU/Linux riscv64 (`tar.gz`)
|
||||
- [x] GNU/Linux loong64 (`tar.gz`)
|
||||
- [x] GNU/Linux ppc64le (`tar.gz`)
|
||||
- [x] Windows 10 / Server 2012 R2 or newer x64
|
||||
- [x] Windows 10 / Server 2012 R2 or newer x86
|
||||
- [x] Windows 10 / Server 2012 R2 or newer arm64
|
||||
|
||||
|
||||
## <a id="donate"></a>Donate
|
||||
|
||||
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
|
||||
|
||||
Special thanks to:
|
||||
## <a id="thanks"></a>Special thanks
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
@@ -178,6 +205,14 @@ Special thanks to:
|
||||
<td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
|
||||
<td>for providing a Mac mini M1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/daiyam" target="_blank">@daiyam</a></td>
|
||||
<td>for macOS certificate</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://signpath.org/" target="_blank"><img src="https://avatars.githubusercontent.com/u/34448643" height="30" alt="SignPath logo" /></a></td>
|
||||
<td>free code signing on Windows provided by <a href="https://signpath.io/" target="_blank">SignPath.io</a>, certificate by <a href="https://signpath.org/" target="_blank">SignPath Foundation</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## <a id="license"></a>License
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
[
|
||||
{
|
||||
"id": "#2668",
|
||||
"title": "[Windows] broken update on 1.107, need manual update",
|
||||
"url": "https://github.com/VSCodium/vscodium/issues/2668"
|
||||
}
|
||||
]
|
||||
|
||||
80
build.sh
80
build.sh
@@ -1,58 +1,90 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [ -f "./remote-dependencies.tar" ]; then
|
||||
tar -xf ./remote-dependencies.tar ./vscode/remote/node_modules
|
||||
fi
|
||||
|
||||
. version.sh
|
||||
|
||||
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
npm config set scripts-prepend-node-path true
|
||||
npm config set node_gyp
|
||||
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
|
||||
. prepare_vscode.sh
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn monaco-compile-check
|
||||
yarn valid-layers-check
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
yarn gulp compile-build
|
||||
yarn gulp compile-extension-media
|
||||
yarn gulp compile-extensions-build
|
||||
yarn gulp minify-vscode
|
||||
npm run monaco-compile-check
|
||||
npm run valid-layers-check
|
||||
|
||||
npm run gulp compile-build-without-mangling
|
||||
npm run gulp compile-extension-media
|
||||
npm run gulp compile-extensions-build
|
||||
npm run gulp minify-vscode
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
# remove win32 node modules
|
||||
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
|
||||
|
||||
find "../VSCode-darwin-${VSCODE_ARCH}" -exec touch {} \;
|
||||
# generate Group Policy definitions
|
||||
npm run copy-policy-dto --prefix build
|
||||
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc darwin
|
||||
|
||||
npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-darwin-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
VSCODE_PLATFORM="darwin"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
# in CI, packaging will be done by a different job
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
# generate Group Policy definitions
|
||||
npm run copy-policy-dto --prefix build
|
||||
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
|
||||
|
||||
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_REH="no"
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_REH="no"
|
||||
SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
. ../build_cli.sh
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="win32"
|
||||
else # linux
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
# remove win32 node modules
|
||||
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
|
||||
# in CI, packaging will be done by a different job
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
# generate Group Policy definitions
|
||||
npm run copy-policy-dto --prefix build
|
||||
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
|
||||
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="linux"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
54
build/alpine/check_tags.sh
Normal file
54
build/alpine/check_tags.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
echo "Already have the Alpine REH ${VSCODE_ARCH} archive"
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-web-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
echo "Already have the Alpine REH-web ${VSCODE_ARCH} archive"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
else
|
||||
|
||||
# alpine-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine arm64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine arm64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
# alpine-x64
|
||||
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Alpine x64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
98
build/alpine/package_reh.sh
Executable file
98
build/alpine/package_reh.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='alpine'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
|
||||
|
||||
export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
if [[ -d "../patches/alpine/reh/" ]]; then
|
||||
for file in "../patches/alpine/reh/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm.ts
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
PA_NAME="linux-alpine"
|
||||
else
|
||||
PA_NAME="alpine-arm64"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${PA_NAME}-min-ci"
|
||||
|
||||
pushd "../vscode-reh-${PA_NAME}"
|
||||
|
||||
echo "Archiving REH"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${PA_NAME}-min-ci"
|
||||
|
||||
pushd "../vscode-reh-web-${PA_NAME}"
|
||||
|
||||
echo "Archiving REH-web"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -1,24 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const crypto = require("crypto");
|
||||
const path = require("path");
|
||||
const { dirs } = require('../../vscode/build/npm/dirs');
|
||||
|
||||
const ROOT = path.join(__dirname, '../../vscode');
|
||||
|
||||
const shasum = crypto.createHash('sha1');
|
||||
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
|
||||
|
||||
// Add `yarn.lock` files
|
||||
for (let dir of dirs) {
|
||||
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
|
||||
shasum.update(fs.readFileSync(yarnLockPath));
|
||||
}
|
||||
|
||||
// Add any other command line arguments
|
||||
for (let i = 2; i < process.argv.length; i++) {
|
||||
shasum.update(process.argv[i]);
|
||||
}
|
||||
|
||||
process.stdout.write(shasum.digest('hex'));
|
||||
111
build/build.sh
111
build/build.sh
@@ -1,111 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export SKIP_BUILD="no"
|
||||
export SKIP_SOURCE="no"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilop" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
o)
|
||||
export SKIP_BUILD="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
s)
|
||||
export SKIP_SOURCE="yes"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${OSTYPE}" in
|
||||
darwin*)
|
||||
export OS_NAME="osx"
|
||||
;;
|
||||
msys* | cygwin*)
|
||||
export OS_NAME="windows"
|
||||
;;
|
||||
*)
|
||||
export OS_NAME="linux"
|
||||
;;
|
||||
esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
|
||||
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
if [[ "${SKIP_SOURCE}" == "no" ]]; then
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
|
||||
else
|
||||
if [[ "${SKIP_ASSETS}" != "no" ]]; then
|
||||
rm -rf VSCode*
|
||||
fi
|
||||
|
||||
. build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
if [[ "${SKIP_SOURCE}" != "no" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "windows" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -15,28 +15,35 @@ if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
wget -c "${APPIMAGE_URL}"
|
||||
wget -c "${APPIMAGE_URL}" -O pkg2appimage.AppImage
|
||||
|
||||
chmod +x ./pkg2appimage-*.AppImage
|
||||
chmod +x ./pkg2appimage.AppImage
|
||||
|
||||
./pkg2appimage-*.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
|
||||
./pkg2appimage.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
|
||||
|
||||
# add update's url
|
||||
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium-insiders|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
|
||||
else
|
||||
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
|
||||
fi
|
||||
# remove check so build in docker can succeed
|
||||
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
|
||||
sed -i "s|@@NAME@@|${APP_NAME}-Insiders|g" recipe.yml
|
||||
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
|
||||
sed -i "s|@@ICON@@|${APP_NAME_LC}-insiders|g" recipe.yml
|
||||
else
|
||||
sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium|g' recipe.yml
|
||||
sed -i "s|@@NAME@@|${APP_NAME}|g" recipe.yml
|
||||
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
|
||||
sed -i "s|@@ICON@@|${APP_NAME_LC}|g" recipe.yml
|
||||
fi
|
||||
|
||||
# workaround that enforces x86 ARCH for pkg2appimage having /__w/vscodium/vscodium/build/linux/appimage/VSCodium/VSCodium.AppDir/usr/share/codium/resources/app/node_modules/rc/index.js is of architecture armhf
|
||||
export ARCH=x86_64
|
||||
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
|
||||
|
||||
rm -f pkg2appimage-*.AppImage
|
||||
|
||||
345
build/linux/check_tags.sh
Normal file
345
build/linux/check_tags.sh
Normal file
@@ -0,0 +1,345 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux ${VSCODE_ARCH} because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
echo "Already have the Linux REH ${VSCODE_ARCH} archive"
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux ${VSCODE_ARCH} because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
echo "Already have the Linux REH-web ${VSCODE_ARCH} archive"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
# linux-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "arm64.snap" ) || "${FORCE_LINUX_SNAP}" == "true" ]]; then
|
||||
echo "Building on Linux arm64 because we have no SNAP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_SNAP="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
if [[ "${VSCODE_ARCH}" == "armhf" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-ppc64le
|
||||
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "ppc64el.deb" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "ppc64le.rpm" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux PowerPC64LE builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-riscv64
|
||||
if [[ "${VSCODE_ARCH}" == "riscv64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux RISC-V 64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux RISC-V 64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux RISC-V 64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux riscv64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-loong64
|
||||
if [[ "${VSCODE_ARCH}" == "loong64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux Loong64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-s390x
|
||||
if [[ "${VSCODE_ARCH}" == "s390x" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
SHOULD_BUILD_APPIMAGE="no"
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_TAR="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux s390x because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux s390x because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux s390x builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${DISABLE_APPIMAGE}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
elif [[ -z $( contains "x86_64.AppImage" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no AppImage"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "amd64.snap" ) || "${FORCE_LINUX_SNAP}" == "true" ]]; then
|
||||
echo "Building on Linux x64 because we have no SNAP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_SNAP="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
13
build/linux/deps.sh
Executable file
13
build/linux/deps.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
sudo apt-get update -y
|
||||
|
||||
sudo apt-get install -y libkrb5-dev
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu crossbuild-essential-arm64
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf crossbuild-essential-armhf
|
||||
fi
|
||||
32
build/linux/install_gh.sh
Executable file
32
build/linux/install_gh.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
for i in {1..5}; do
|
||||
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
|
||||
|
||||
if [[ $? == 0 && "${TAG}" != "null" ]]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "GH install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "GH install failed $i, trying again..."
|
||||
|
||||
sleep $(( 15 * (i + 1)))
|
||||
done
|
||||
|
||||
VERSION="${TAG#v}"
|
||||
|
||||
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
13
build/linux/install_nodejs.sh
Executable file
13
build/linux/install_nodejs.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
NODEJS_VERSION=$( cat .nvmrc )
|
||||
|
||||
curl -fsSL "${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}.tar.xz" -o node.tar.xz
|
||||
|
||||
tar -xf node.tar.xz
|
||||
|
||||
sudo mv "node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}" /usr/local/node
|
||||
|
||||
echo "/usr/local/node/bin" >> $GITHUB_PATH
|
||||
6
build/linux/loong64/electron.sh
Normal file
6
build/linux/loong64/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="39.2.3"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
9
build/linux/loong64/electron.sha256sums
Normal file
9
build/linux/loong64/electron.sha256sums
Normal file
@@ -0,0 +1,9 @@
|
||||
d26b2189e7466a08c73861d0225c9b28730fdfc30918f3ea70853b43a2581dc4 *chromedriver-v39.2.3-linux-loong64.zip
|
||||
8cc36f7468f5b2d98cde3f73c10c535555754c54be43e45c320a382c35b8e466 *electron-v39.2.3-linux-loong64.zip
|
||||
f6e7462d6fd795ae2b08344ee0fdca817eba148b62a62717b3f512c845d96a64 *ffmpeg-v39.2.3-linux-loong64.zip
|
||||
b122599dc84b81526ba4eecbca4794f3a2d25300242ad3829d1445cb6948f470 *hunspell-dictionaries.zip
|
||||
76ef17d2810df5e77c5071863e2a375df914cfb7a362ad0582ee0eedca2441b9 *libcxx-headers.zip
|
||||
9b61ba9f0780a57ee2749f7963759395784eadcaccc54af313de1a540240298e *libcxx-objects-v39.2.3-linux-loong64.zip
|
||||
9ae64aff9e391eae401142e55654b5b8cf54d0611b1ecb540f2f4e89a2b4f772 *libcxxabi-headers.zip
|
||||
7d7e6e08c84aa38b74037f5910534918bc792ffbe2ca6d667067f587f27f5118 *mksnapshot-v39.2.3-linux-loong64.zip
|
||||
db48f8a9d2271e8b3a1c3f26ea1ae9bd489deb1b464b6ae424a15d5df7529fdc *node-v39.2.3-headers.tar.gz
|
||||
18
build/linux/loong64/ripgrep.sh
Executable file
18
build/linux/loong64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
|
||||
# however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1"
|
||||
|
||||
echo "Replacing ripgrep binary with loong64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/darkyzhou/ripgrep-loongarch64-musl/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
155
build/linux/package_bin.sh
Executable file
155
build/linux/package_bin.sh
Executable file
@@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
chown -R root:root vscode
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
# export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
export VSCODE_SYSROOT_PREFIX="-glibc-2.28"
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_ELECTRON_REPOSITORY='lex-ibm/electron-ppc64le-build-scripts'
|
||||
export IGNORE_ELECTRON_VERSION="yes"
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='riscv-forks/electron-riscv-releases'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
fi
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
|
||||
# add newline at the end of the file
|
||||
echo "" >> build/checksums/electron.txt
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sha256sums" ]]; then
|
||||
cat "../build/linux/${VSCODE_ARCH}/electron.sha256sums" >> build/checksums/electron.txt
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "../build/linux/${VSCODE_ARCH}/electron.sh"
|
||||
|
||||
TARGET=$( npm config get target )
|
||||
|
||||
# Only fails at different major versions
|
||||
if [[ "${ELECTRON_VERSION%%.*}" != "${TARGET%%.*}" ]] && [[ "${IGNORE_ELECTRON_VERSION}" != "yes" ]]; then
|
||||
# Fail the pipeline if electron target doesn't match what is used.
|
||||
echo "Electron ${VSCODE_ARCH} binary version doesn't match target electron version!"
|
||||
echo "Releases available at: https://github.com/${VSCODE_ELECTRON_REPOSITORY}/releases"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${ELECTRON_VERSION}" != "${TARGET}" ]]; then
|
||||
# Force version
|
||||
replace "s|target=\"${TARGET}\"|target=\"${ELECTRON_VERSION}\"|" .npmrc
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/client/" ]]; then
|
||||
for file in "../patches/linux/client/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "$HOME/.gyp" ]; then
|
||||
mkdir -p "$HOME/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "$HOME/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm.ts
|
||||
|
||||
# delete native files built in the `compile` step
|
||||
find .build/extensions -type f -name '*.node' -print -delete
|
||||
|
||||
# generate Group Policy definitions
|
||||
npm run copy-policy-dto --prefix build
|
||||
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc linux
|
||||
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
|
||||
fi
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
if [[ -n "${GITHUB_OUTPUT}" ]]; then
|
||||
echo "VSCODE_SYSROOT_REPOSITORY=${VSCODE_SYSROOT_REPOSITORY:-}" >> "${GITHUB_OUTPUT}"
|
||||
echo "VSCODE_SYSROOT_VERSION=${VSCODE_SYSROOT_VERSION:-}" >> "${GITHUB_OUTPUT}"
|
||||
echo "VSCODE_SYSROOT_PREFIX=${VSCODE_SYSROOT_PREFIX:-}" >> "${GITHUB_OUTPUT}"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
264
build/linux/package_reh.sh
Executable file
264
build/linux/package_reh.sh
Executable file
@@ -0,0 +1,264 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
GLIBC_VERSION="2.28"
|
||||
GLIBCXX_VERSION="3.4.26"
|
||||
NODE_VERSION="22.21.1"
|
||||
|
||||
export VSCODE_NODEJS_URLROOT='/download/release'
|
||||
export VSCODE_NODEJS_URLSUFFIX=''
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
EXPECTED_GLIBC_VERSION="2.30"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-arm64"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
EXPECTED_GLIBC_VERSION="2.30"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-armhf"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
GLIBC_VERSION="2.28"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
|
||||
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
NODE_VERSION="22.21.1"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
NODE_VERSION="22.21.1"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:beige-devtoolset-loong64"
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
|
||||
GLIBC_VERSION="2.28"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
|
||||
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20241108'
|
||||
fi
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
|
||||
if [[ -z "${VSCODE_SYSROOT_PREFIX}" ]]; then
|
||||
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}-gcc-10.5.0"
|
||||
else
|
||||
export VSCODE_SYSROOT_PREFIX
|
||||
fi
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION:=GLIBC_VERSION}"
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
|
||||
export VSCODE_HOST_MOUNT
|
||||
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
sed -i "/target/s/\"22.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
|
||||
|
||||
if [[ -d "../patches/linux/reh/" ]]; then
|
||||
for file in "../patches/linux/reh/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/reh/${VSCODE_ARCH}/" ]]; then
|
||||
for file in "../patches/linux/reh/${VSCODE_ARCH}/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "${HOME}/.gyp" ]; then
|
||||
mkdir -p "${HOME}/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
cat ./build/checksums/vscode-sysroot.txt
|
||||
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
|
||||
export VSCODE_SYSROOT_DIR="${VSCODE_REMOTE_SYSROOT_DIR}"
|
||||
else
|
||||
mkdir -p .build/x86_64-linux-gnu/x86_64-linux-gnu/bin
|
||||
|
||||
ln -s $( which objdump ) .build/x86_64-linux-gnu/x86_64-linux-gnu/bin/objdump
|
||||
|
||||
export VSCODE_SYSROOT_DIR=".build"
|
||||
fi
|
||||
|
||||
node build/npm/preinstall.ts
|
||||
|
||||
mv .npmrc .npmrc.bak
|
||||
cp ../npmrc .npmrc
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
|
||||
# remove dependencies that fail during cleanup
|
||||
rm -rf node_modules/@vscode node_modules/node-pty
|
||||
done
|
||||
|
||||
# if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
# pushd "remote"
|
||||
|
||||
# for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
|
||||
# do
|
||||
# pushd "node_modules/${LIB}"
|
||||
|
||||
# CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
|
||||
|
||||
# popd
|
||||
# done
|
||||
|
||||
# popd
|
||||
|
||||
# VERIFY_CXX11=1
|
||||
# fi
|
||||
|
||||
mv .npmrc.bak .npmrc
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm.ts
|
||||
|
||||
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
# if [[ -n "${VERIFY_CXX11}" ]]; then
|
||||
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
|
||||
# fi
|
||||
|
||||
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
# if [[ -n "${VERIFY_CXX11}" ]]; then
|
||||
# SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
|
||||
# fi
|
||||
|
||||
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH-web"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
6
build/linux/ppc64le/electron.sh
Normal file
6
build/linux/ppc64le/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="41.0.3"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
11
build/linux/ppc64le/electron.sha256sums
Normal file
11
build/linux/ppc64le/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
120e0e5915c8f1a49904737e82bf50bc72563f8556fc3c5997c118908b377874 *chromedriver-v41.0.3-linux-ppc64le.zip
|
||||
4601e7692cac011610c245d8c58f14a73b415fccf520194f14674f81e4ce2c41 *electron-v41.0.3-linux-ppc64le-debug.zip
|
||||
498a74b78699ff9d4819310262d96e861dd7d899f38f8f625a311968b076b29b *electron-v41.0.3-linux-ppc64le-symbols.zip
|
||||
77e86aa200d9e19b5eb3a51f273ee410788c21977f2ea76b1239d79aa2e1adbf *electron-v41.0.3-linux-ppc64le.zip
|
||||
e246066ccc328729e6a9f2a0d829bc893391cf54ed199b809bb7e47993fed88f *electron.d.ts
|
||||
687a36388a7cf06427d7fa7e3db7fca4ab0118c5eab2baeac128c1989a600cff *ffmpeg-v41.0.3-linux-ppc64le.zip
|
||||
70ba677d4bea3e7164c82f6b5a36ac6b740317fb1dd149a0eaf1ff151da44cb2 *hunspell_dictionaries.zip
|
||||
3e85df4843497ce567ad36ddf826cd1af7dfe9f883daad4623736ddd012dbfd1 *libcxx-objects-v41.0.3-linux-ppc64le.zip
|
||||
5587472eeaf9bfb76d0f187ecc19d11d60bc05f5e7c8fa822f2370210c30b95d *libcxx_headers.zip
|
||||
f531ddd2782b4b19caf622c0355c93892965e22861279cc891675230c1310905 *libcxxabi_headers.zip
|
||||
6cb0e67dc5a23de0ebbe89253e1f24bf9d4ca41213a1b9f784f2afaa2cf61324 *mksnapshot-v41.0.3-linux-ppc64le.zip
|
||||
67
build/linux/prepare_assets.sh
Normal file
67
build/linux/prepare_assets.sh
Normal file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
if [[ -z "${VSCODE_SYSROOT_REPOSITORY}" ]]; then
|
||||
unset VSCODE_SYSROOT_REPOSITORY
|
||||
fi
|
||||
|
||||
if [[ -z "${VSCODE_SYSROOT_VERSION}" ]]; then
|
||||
unset VSCODE_SYSROOT_VERSION
|
||||
fi
|
||||
|
||||
if [[ -z "${VSCODE_SYSROOT_PREFIX}" ]]; then
|
||||
unset VSCODE_SYSROOT_PREFIX
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" && "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-prepare-deb"
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-prepare-rpm"
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
. ./stores/snapcraft/build.sh
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
mv stores/snapcraft/build/*.snap assets/
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd "VSCode-linux-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* assets/
|
||||
|
||||
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
|
||||
fi
|
||||
6
build/linux/riscv64/electron.sh
Executable file
6
build/linux/riscv64/electron.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="39.2.7"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"
|
||||
11
build/linux/riscv64/electron.sha256sums
Normal file
11
build/linux/riscv64/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
6759ef2bd69a2e31a3f0e17c4e4c0bf239b54f08525572201ae7760851168487 *chromedriver-v39.2.7-linux-riscv64.zip
|
||||
89562e30982d8ac71fbc1e0f549a4a6e19abd5cb98ea904d5f3cfceb7c61e582 *electron-v39.2.7-linux-riscv64-debug.tar.zst
|
||||
71c6f265a2ef065f478ef910a06466a21009c02783dcb7053767549a6dbeb80d *electron-v39.2.7-linux-riscv64-symbols.tar.zst
|
||||
136804dbd04f1c6b9a6047c4e7bb648876214ff453b62fb3bdc81505b6f5aab2 *electron-v39.2.7-linux-riscv64.zip
|
||||
1059d6cb97b87464b3bd415bb5f96fceaf91d6e3af1c9733724ab9f2e14e2a08 *ffmpeg-v39.2.7-linux-riscv64.zip
|
||||
224a84d4aaceb5ed8be3c4f65f8404d492dc86ded8ab336c2562dfdd21752068 *hunspell-dictionaries.zip
|
||||
b6cb4f8902aad5de811efd106ddbdbca79e43cb7c8fa67f7eeddaedf2efd82d5 *libcxx-headers.zip
|
||||
0664e200ec1eab1ce1957bc6e17ad89f6c0d4d904a9492d64fcf4175cd81e537 *libcxx-objects-v39.2.7-linux-riscv64.zip
|
||||
96f9b66be7ff11e79ec2e781a0025938eb5ef97cbab429c05e9b45d24d421abf *libcxxabi-headers.zip
|
||||
be0774857454f81b9407f6b941200f8843a0b3ecb86e2bb072209ef9f9bfe74a *mksnapshot-v39.2.7-linux-riscv64.zip
|
||||
a8fca541e8f9a18de73c78f6862cbf439723c80c5eb60fe50405dfb751d2ee13 *node-v39.2.7-headers.tar.gz
|
||||
18
build/linux/riscv64/ripgrep.sh
Executable file
18
build/linux/riscv64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# microsoft/ripgrep-prebuilt doesn't support riscv64.
|
||||
# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1-4"
|
||||
|
||||
echo "Replacing ripgrep binary with riscv64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
29
build/linux/verify_abi_requirements.sh
Executable file
29
build/linux/verify_abi_requirements.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
FILES=$(
|
||||
find "${SEARCH_PATH}" -type f -executable -name "node"
|
||||
find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*"
|
||||
)
|
||||
|
||||
echo "Verifying requirements for files: ${FILES}"
|
||||
|
||||
for FILE in ${FILES}; do
|
||||
CXXABI_VERSION="0.0.0"
|
||||
|
||||
while IFS= read -r LINE; do
|
||||
VERSION=${LINE#*_}
|
||||
|
||||
if [[ $( printf "%s\n%s" "${VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${VERSION}" ]]; then
|
||||
CXXABI_VERSION="${VERSION}"
|
||||
fi
|
||||
done < <( strings "${FILE}" | grep -i ^CXXABI )
|
||||
|
||||
if [[ $( printf "%s\n%s" "${EXPECTED_CXXABI_VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${EXPECTED_CXXABI_VERSION}" ]]; then
|
||||
echo "File ${FILE} has dependency on ABI ${CXXABI_VERSION} <= ${EXPECTED_CXXABI_VERSION}"
|
||||
else
|
||||
echo "Error: File ${FILE} has dependency on ABI ${CXXABI_VERSION} > ${EXPECTED_CXXABI_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
14
build/linux/verify_cxx11_requirements.sh
Executable file
14
build/linux/verify_cxx11_requirements.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
FILES=$( find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" )
|
||||
|
||||
echo "Verifying requirements for files: ${FILES}"
|
||||
|
||||
for FILE in ${FILES}; do
|
||||
if [[ -n "$( strings "${FILE}" | grep cxx11 | tail -n1 )" ]]; then
|
||||
echo "Error: File ${FILE} has dependency on CXX11"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
40
build/osx/check_tags.sh
Normal file
40
build/osx/check_tags.sh
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" ) ]]; then
|
||||
echo "Building on MacOS because we have no DMG"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DMG="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-web-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
11
build/osx/include.gypi
Normal file
11
build/osx/include.gypi
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
'target_defaults': {
|
||||
'conditions': [
|
||||
['OS=="mac"', {
|
||||
'xcode_settings': {
|
||||
'OTHER_CPLUSPLUSFLAGS': ['-std=c++20']
|
||||
}
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
84
build/osx/prepare_assets.sh
Normal file
84
build/osx/prepare_assets.sh
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
RUNNER_TEMP="${TMPDIR}"
|
||||
fi
|
||||
|
||||
CERTIFICATE_P12="${APP_NAME}.p12"
|
||||
KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain"
|
||||
AGENT_TEMPDIRECTORY="${RUNNER_TEMP}"
|
||||
# shellcheck disable=SC2006
|
||||
KEYCHAINS=`security list-keychains | xargs`
|
||||
|
||||
rm -f "${KEYCHAIN}"
|
||||
|
||||
echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}"
|
||||
|
||||
echo "+ create temporary keychain"
|
||||
security create-keychain -p pwd "${KEYCHAIN}"
|
||||
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
|
||||
security unlock-keychain -p pwd "${KEYCHAIN}"
|
||||
# shellcheck disable=SC2086
|
||||
security list-keychains -s $KEYCHAINS "${KEYCHAIN}"
|
||||
# security show-keychain-info "${KEYCHAIN}"
|
||||
|
||||
echo "+ import certificate to keychain"
|
||||
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign
|
||||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null
|
||||
# security find-identity "${KEYCHAIN}"
|
||||
|
||||
CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )"
|
||||
|
||||
echo "+ signing"
|
||||
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
|
||||
|
||||
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.ts "$( pwd )"
|
||||
# codesign --display --entitlements :- ""
|
||||
|
||||
echo "+ notarize"
|
||||
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
ZIP_FILE="./${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
|
||||
|
||||
zip -r -X -y "${ZIP_FILE}" ./*.app
|
||||
|
||||
xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}"
|
||||
# xcrun notarytool history --keychain-profile "${APP_NAME}" --keychain "${KEYCHAIN}"
|
||||
xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}"
|
||||
|
||||
echo "+ attach staple"
|
||||
xcrun stapler staple ./*.app
|
||||
# spctl --assess -vv --type install ./*.app
|
||||
|
||||
rm "${ZIP_FILE}"
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" && "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg ./*.app .
|
||||
mv ./*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
|
||||
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
|
||||
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
|
||||
fi
|
||||
|
||||
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
|
||||
echo "+ clean"
|
||||
security delete-keychain "${KEYCHAIN}"
|
||||
# shellcheck disable=SC2086
|
||||
security list-keychains -s $KEYCHAINS
|
||||
fi
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
URL=`curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/VERSION" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/'`
|
||||
# echo "url: ${URL}"
|
||||
FILE=`echo "${URL}" | sed -E 's|.*/([^/]+\.zip)$|\1|'`
|
||||
# echo "file: ${FILE}"
|
||||
DIRECTORY=`echo "${URL}" | sed -E 's|.*/([^/]+)\.zip$|\1|'`
|
||||
# echo "directory: ${DIRECTORY}"
|
||||
|
||||
if [[ ! -f "${FILE}" ]]; then
|
||||
wget "${URL}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DIRECTORY}" ]]; then
|
||||
unzip "${FILE}" -d "${DIRECTORY}"
|
||||
fi
|
||||
|
||||
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
|
||||
|
||||
APIS=`echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}'`
|
||||
|
||||
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json
|
||||
@@ -1,60 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
for FILE in ../patches/*.patch; do
|
||||
if [ -f "${FILE}" ]; then
|
||||
echo applying patch: "${FILE}"
|
||||
git apply --ignore-whitespace "${FILE}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch "${FILE}"
|
||||
|
||||
git apply --reject "${FILE}"
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
read -p "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git restore .vscode/settings.json
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
if [ -f "${FILE}" ]; then
|
||||
echo applying patch: "${FILE}"
|
||||
git apply --ignore-whitespace "${FILE}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch "${FILE}"
|
||||
|
||||
git apply --reject "${FILE}"
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
read -p "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git restore .vscode/settings.json
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
done
|
||||
fi
|
||||
14
build/windows/appx/build.sh
Executable file
14
build/windows/appx/build.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Add Windows SDK to path
|
||||
SDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64'
|
||||
export PATH="${SDK}:${PATH}"
|
||||
|
||||
APPX_NAME="${BINARY_NAME//-/_}"
|
||||
|
||||
makeappx pack /d "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest" /p "../../../VSCode-win32-${VSCODE_ARCH}/appx/${APPX_NAME}_${VSCODE_ARCH}.appx" /nv
|
||||
|
||||
# Remove the raw manifest folder
|
||||
rm -rf "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest"
|
||||
105
build/windows/check_tags.sh
Normal file
105
build/windows/check_tags.sh
Normal file
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# windows-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-web-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -10,9 +10,8 @@ SCRIPT_DIR=$( pwd )
|
||||
|
||||
cd "../../../VSCode-win32-${VSCODE_ARCH}/resources/app"
|
||||
|
||||
cp product.json product.json.bak
|
||||
cat product.json.bak | jq "del(.updateUrl)" > product.json
|
||||
rm -f product.json.bak
|
||||
jsonTmp=$( jq "del(.updateUrl)" product.json )
|
||||
echo "${jsonTmp}" > product.json && unset jsonTmp
|
||||
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
@@ -11,14 +11,12 @@ WIN_SDK_FULL_VERSION="10.0.17763.0"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
PRODUCT_NAME="VSCodium - Insiders"
|
||||
PRODUCT_SKU="vscodium-insiders"
|
||||
PRODUCT_CODE="VSCodiumInsiders"
|
||||
PRODUCT_UPGRADE_CODE="1C9B7195-5A9A-43B3-B4BD-583E20498467"
|
||||
ICON_DIR="..\\..\\..\\src\\insider\\resources\\win32"
|
||||
SETUP_RESOURCES_DIR=".\\resources\\insider"
|
||||
else
|
||||
PRODUCT_NAME="VSCodium"
|
||||
PRODUCT_SKU="vscodium"
|
||||
PRODUCT_CODE="VSCodium"
|
||||
PRODUCT_UPGRADE_CODE="965370CD-253C-4720-82FC-2E6B02A53808"
|
||||
ICON_DIR="..\\..\\..\\src\\stable\\resources\\win32"
|
||||
@@ -51,7 +49,7 @@ fi
|
||||
sed -i "s|@@PRODUCT_UPGRADE_CODE@@|${PRODUCT_UPGRADE_CODE}|g" .\\includes\\vscodium-variables.wxi
|
||||
sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" .\\vscodium.xsl
|
||||
|
||||
find i18n -name '*.wxl' -exec sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" {} \;
|
||||
find i18n -name '*.wxl' -print0 | xargs -0 sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g"
|
||||
|
||||
BuildSetupTranslationTransform() {
|
||||
local CULTURE=${1}
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register @@PRODUCT_NAME@@ as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer file context menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with @@PRODUCT_NAME@@" action to Windows Explorer directory context menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add @@PRODUCT_NAME@@ to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch @@PRODUCT_NAME@@</String>
|
||||
|
||||
52
build/windows/package.sh
Executable file
52
build/windows/package.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm.ts
|
||||
|
||||
# delete native files built in the `compile` step
|
||||
find .build/extensions -type f -name '*.node' -print -delete
|
||||
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
# generate Group Policy definitions
|
||||
npm run copy-policy-dto --prefix build
|
||||
node build/lib/policies/policyGenerator.ts build/lib/policies/policyData.jsonc win32
|
||||
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
53
build/windows/prepare_assets.sh
Normal file
53
build/windows/prepare_assets.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
|
||||
fi
|
||||
|
||||
# . ../build/windows/appx/build.sh
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
. ../build/windows/msi/build.sh
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
. ../build/windows/msi/build-updates-disabled.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
fi
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
|
||||
112
build_cli.sh
Executable file
112
build_cli.sh
Executable file
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
cd cli
|
||||
|
||||
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
|
||||
export VSCODE_CLI_APP_NAME="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
export VSCODE_CLI_BINARY_NAME="$( node -p "require(\"../product.json\").serverApplicationName" )"
|
||||
export VSCODE_CLI_UPDATE_ENDPOINT="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium-insiders/releases"
|
||||
else
|
||||
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium/releases"
|
||||
fi
|
||||
|
||||
TUNNEL_APPLICATION_NAME="$( node -p "require(\"../product.json\").tunnelApplicationName" )"
|
||||
NAME_SHORT="$( node -p "require(\"../product.json\").nameShort" )"
|
||||
|
||||
npm pack @vscode/openssl-prebuilt@0.0.11
|
||||
mkdir openssl
|
||||
tar -xvzf vscode-openssl-prebuilt-0.0.11.tgz --strip-components=1 --directory=openssl
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-apple-darwin"
|
||||
else
|
||||
VSCODE_CLI_TARGET="x86_64-apple-darwin"
|
||||
fi
|
||||
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/include"
|
||||
|
||||
rustup target add "${VSCODE_CLI_TARGET}"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-darwin-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-pc-windows-msvc"
|
||||
export VSCODE_CLI_RUST="-C target-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT:NO"
|
||||
else
|
||||
VSCODE_CLI_TARGET="x86_64-pc-windows-msvc"
|
||||
export VSCODE_CLI_RUSTFLAGS="-Ctarget-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT"
|
||||
fi
|
||||
|
||||
export VSCODE_CLI_CFLAGS="/guard:cf /Qspectre"
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/include"
|
||||
|
||||
rustup target add "${VSCODE_CLI_TARGET}"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code.exe" "../../VSCode-win32-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}.exe"
|
||||
else
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/include"
|
||||
export VSCODE_SYSROOT_DIR="../.build/sysroots"
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-unknown-linux-gnu"
|
||||
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
|
||||
export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc
|
||||
export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
fi
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
VSCODE_CLI_TARGET="armv7-unknown-linux-gnueabihf"
|
||||
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/arm-linux/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/arm-linux/include"
|
||||
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
|
||||
export CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
|
||||
export CXX_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
fi
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
VSCODE_CLI_TARGET="powerpc64le-unknown-linux-gnu"
|
||||
|
||||
# Use system libs instead of @vscode/openssl-prebuilt
|
||||
mkdir -p openssl/out/ppc64le-linux/
|
||||
ln -sf /usr/lib/powerpc64le-linux-gnu openssl/out/ppc64le-linux/lib
|
||||
ln -sf /usr/include openssl/out/ppc64le-linux/include
|
||||
|
||||
if [[ "${CI_BUILD}" != "no" ]] && [[ "$(uname -m)" != "ppc64le" ]]; then
|
||||
export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc-10
|
||||
export CC_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-gcc-10
|
||||
export CXX_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-g++-10
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
fi
|
||||
|
||||
elif [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
VSCODE_CLI_TARGET="x86_64-unknown-linux-gnu"
|
||||
fi
|
||||
|
||||
if [[ -n "${VSCODE_CLI_TARGET}" ]]; then
|
||||
rustup target add "${VSCODE_CLI_TARGET}"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-linux-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
@@ -1,11 +1,12 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2129
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
|
||||
echo "It's a PR"
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
|
||||
echo "It's a Push"
|
||||
@@ -13,9 +14,16 @@ elif [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
|
||||
echo "It's a Dispatch"
|
||||
if [[ "${GENERATE_ASSETS}" == "true" ]]; then
|
||||
echo "It will generate the assets"
|
||||
|
||||
export SHOULD_DEPLOY="yes"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
else
|
||||
echo "It's a Dispatch"
|
||||
|
||||
export SHOULD_DEPLOY="yes"
|
||||
fi
|
||||
else
|
||||
echo "It's a Cron"
|
||||
|
||||
@@ -24,7 +32,7 @@ fi
|
||||
|
||||
if [[ "${GITHUB_ENV}" ]]; then
|
||||
echo "GITHUB_BRANCH=${GITHUB_BRANCH}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_DEPLOY=${SHOULD_DEPLOY}" >> "${GITHUB_ENV}"
|
||||
echo "VSCODE_QUALITY=${VSCODE_QUALITY}" >> "${GITHUB_ENV}"
|
||||
fi
|
||||
|
||||
399
check_tags.sh
399
check_tags.sh
@@ -1,43 +1,68 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2129
|
||||
|
||||
# Env Paramaters
|
||||
# CHECK_ALL: yes | no
|
||||
# CHECK_REH: yes | no
|
||||
# CHECK_ONLY_REH: yes | no
|
||||
# FORCE_LINUX_SNAP: true
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
|
||||
echo "Will not build because no GITHUB_TOKEN defined"
|
||||
exit
|
||||
exit 0
|
||||
else
|
||||
GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}"
|
||||
fi
|
||||
|
||||
APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
|
||||
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
|
||||
# Support for GitHub Enterprise
|
||||
GH_HOST="${GH_HOST:-github.com}"
|
||||
|
||||
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
|
||||
if [ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]; then
|
||||
echo "New VSCode version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${NEW_RELEASE}" == "true" ]]; then
|
||||
echo "New release build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
|
||||
if [ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]; then
|
||||
echo "New VSCode Insiders version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
if [[ "${SHOULD_DEPLOY}" == "no" ]]; then
|
||||
ASSETS="null"
|
||||
else
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases/latest" )
|
||||
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
|
||||
RECHECK_ASSETS="${SHOULD_BUILD}"
|
||||
|
||||
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5]) ]]; then
|
||||
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${NEW_RELEASE}" == "true" ]]; then
|
||||
echo "New release build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
|
||||
|
||||
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
|
||||
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode Insiders version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
export RELEASE_VERSION="${LATEST_VERSION}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
export RELEASE_VERSION="${LATEST_VERSION}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
|
||||
echo "Switch to release version: ${RELEASE_VERSION}"
|
||||
echo "Switch to release version: ${RELEASE_VERSION}"
|
||||
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
elif [[ "${RECHECK_ASSETS}" == "yes" ]]; then
|
||||
export SHOULD_BUILD="no"
|
||||
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
else
|
||||
ASSETS="null"
|
||||
fi
|
||||
else
|
||||
ASSETS="null"
|
||||
echo "can't check assets"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -46,296 +71,58 @@ contains() {
|
||||
echo "${ASSETS}" | grep "${1}\""
|
||||
}
|
||||
|
||||
if [ "${ASSETS}" != "null" ]; then
|
||||
# shellcheck disable=SC2153
|
||||
if [[ "${CHECK_ASSETS}" == "no" ]]; then
|
||||
echo "Don't check assets, yet"
|
||||
elif [[ "${ASSETS}" != "null" ]]; then
|
||||
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" ) || -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.zip" ) ]]; then
|
||||
echo "Building because we have no SRC"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
fi
|
||||
# macos
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" ) || -z $( contains "${APP_NAME}-${RELEASE_VERSION}-src.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no SRC"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${RELEASE_VERSION}.dmg" ) ]]; then
|
||||
echo "Building on MacOS because we have no DMG"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DMG="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "osx" ]]; then
|
||||
. ./build/osx/check_tags.sh
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
|
||||
# windows-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_REH="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-ia32
|
||||
elif [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
. ./build/windows/check_tags.sh
|
||||
else
|
||||
if [[ "${OS_NAME}" == "linux" ]]; then
|
||||
. ./build/linux/check_tags.sh
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
|
||||
# linux-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
else
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no AppImage"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
if [[ "${OS_NAME}" == "alpine" ]] || [[ "${OS_NAME}" == "linux" && "${CHECK_ALL}" == "yes" ]]; then
|
||||
. ./build/alpine/check_tags.sh
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "${OS_NAME}" == "linux" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
export SHOULD_BUILD_SRC="yes"
|
||||
if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -343,6 +130,7 @@ else
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
|
||||
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_APPIMAGE=${SHOULD_BUILD_APPIMAGE}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_DEB=${SHOULD_BUILD_DEB}" >> "${GITHUB_ENV}"
|
||||
@@ -352,7 +140,10 @@ echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_REH=${SHOULD_BUILD_REH}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_REH_WEB=${SHOULD_BUILD_REH_WEB}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_CLI=${SHOULD_BUILD_CLI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_SNAP=${SHOULD_BUILD_SNAP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_SRC=${SHOULD_BUILD_SRC}" >> "${GITHUB_ENV}"
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./build/build.sh
|
||||
bash ./dev/build.sh
|
||||
162
dev/build.sh
Executable file
162
dev/build.sh
Executable file
@@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091,SC2129
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./dev/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export ASSETS_REPOSITORY="VSCodium/vscodium"
|
||||
export BINARY_NAME="codium"
|
||||
export CI_BUILD="no"
|
||||
export GH_REPO_PATH="VSCodium/vscodium"
|
||||
export ORG_NAME="VSCodium"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export SKIP_BUILD="no"
|
||||
export SKIP_SOURCE="no"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
|
||||
|
||||
while getopts ":ilops" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export ASSETS_REPOSITORY="VSCodium/vscodium-insiders"
|
||||
export BINARY_NAME="codium-insiders"
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
o)
|
||||
export SKIP_BUILD="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
s)
|
||||
export SKIP_SOURCE="yes"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${OSTYPE}" in
|
||||
darwin*)
|
||||
export OS_NAME="osx"
|
||||
;;
|
||||
msys* | cygwin*)
|
||||
export OS_NAME="windows"
|
||||
;;
|
||||
*)
|
||||
export OS_NAME="linux"
|
||||
;;
|
||||
esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "aarch64" || "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_ARCH="ppc64le"
|
||||
elif [[ "${UNAME_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ARCH="riscv64"
|
||||
elif [[ "${UNAME_ARCH}" == "loongarch64" ]]; then
|
||||
export VSCODE_ARCH="loong64"
|
||||
elif [[ "${UNAME_ARCH}" == "s390x" ]]; then
|
||||
export VSCODE_ARCH="s390x"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
|
||||
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
if [[ "${SKIP_SOURCE}" == "no" ]]; then
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > dev/build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> dev/build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> dev/build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> dev/build.env
|
||||
else
|
||||
if [[ "${SKIP_ASSETS}" != "no" ]]; then
|
||||
rm -rf vscode-* VSCode-*
|
||||
fi
|
||||
|
||||
. dev/build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
if [[ "${SKIP_SOURCE}" != "no" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
rm -rf .build out*
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
echo "Installing custom ~/.gyp/include.gypi"
|
||||
|
||||
mkdir -p ~/.gyp
|
||||
|
||||
if [[ -f "${HOME}/.gyp/include.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi ~/.gyp/include.gypi.pre-vscodium
|
||||
else
|
||||
echo "{}" > ~/.gyp/include.gypi.pre-vscodium
|
||||
fi
|
||||
|
||||
cp ./build/osx/include.gypi ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi.pre-vscodium ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
jsonTmp=$( cat "./upstream/${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
|
||||
echo "${jsonTmp}" > "./upstream/${VSCODE_QUALITY}.json" && unset jsonTmp
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "windows" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" && -f "dev/osx/codesign.env" ]]; then
|
||||
. dev/osx/macos-codesign.env
|
||||
|
||||
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
exists() { type -t "$1" > /dev/null 2>&1; }
|
||||
exists() { type -t "$1" &> /dev/null; }
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
@@ -21,16 +22,11 @@ while getopts ":ilp" opt; do
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! exists yarn; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
fi
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
|
||||
12
dev/cli.sh
Executable file
12
dev/cli.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
|
||||
export VSCODE_CLI_APP_NAME="vscodium"
|
||||
export VSCODE_CLI_BINARY_NAME="codium-server-insiders"
|
||||
export VSCODE_CLI_DOWNLOAD_URL="https://github.com/VSCodium/vscodium-insiders/releases"
|
||||
export VSCODE_CLI_QUALITY="insider"
|
||||
export VSCODE_CLI_UPDATE_URL="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
|
||||
|
||||
cargo build --release --target aarch64-apple-darwin --bin=code
|
||||
|
||||
cp target/aarch64-apple-darwin/release/code "../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-tunnel-insiders"
|
||||
|
||||
"../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-insiders" serve-web
|
||||
64
dev/merge-patches.sh
Executable file
64
dev/merge-patches.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
normalize_file() {
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="${1}"
|
||||
else
|
||||
FILE="${1}.patch"
|
||||
fi
|
||||
|
||||
if [[ "${FILE}" == patches/* ]]; then
|
||||
FILE="../${FILE}"
|
||||
else
|
||||
FILE="../patches/${FILE}"
|
||||
fi
|
||||
}
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
git add .
|
||||
git commit --no-verify -q -m "VSCODIUM HELPER"
|
||||
|
||||
while [ $# -gt 1 ]; do
|
||||
normalize_file "${1}"
|
||||
|
||||
echo "FILE: ${FILE}"
|
||||
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
if [[ -f "${FILE}.bak" ]]; then
|
||||
mv -f $FILE{.bak,}
|
||||
fi
|
||||
|
||||
git apply --reject "${FILE}" || true
|
||||
fi
|
||||
|
||||
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
|
||||
echo
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
done
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
normalize_file "${1}"
|
||||
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
|
||||
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
|
||||
git reset -q --hard HEAD
|
||||
else
|
||||
git reset -q --hard HEAD~
|
||||
fi
|
||||
|
||||
echo "The patch has been generated."
|
||||
5
dev/osx/codesign.env.template
Normal file
5
dev/osx/codesign.env.template
Normal file
@@ -0,0 +1,5 @@
|
||||
CERTIFICATE_OSX_APP_PASSWORD=
|
||||
CERTIFICATE_OSX_ID=
|
||||
CERTIFICATE_OSX_P12_DATA=
|
||||
CERTIFICATE_OSX_P12_PASSWORD=
|
||||
CERTIFICATE_OSX_TEAM_ID=
|
||||
74
dev/patch.sh
Executable file
74
dev/patch.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
normalize_file() {
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="${1}"
|
||||
else
|
||||
FILE="${1}.patch"
|
||||
fi
|
||||
|
||||
if [[ "${FILE}" == patches/* ]]; then
|
||||
FILE="../${FILE}"
|
||||
else
|
||||
FILE="../patches/${FILE}"
|
||||
fi
|
||||
}
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
normalize_file "${1}"
|
||||
|
||||
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
while [ $# -gt 1 ]; do
|
||||
echo "Parameter: $1"
|
||||
normalize_file "${1}"
|
||||
|
||||
git apply --reject "${FILE}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
git add .
|
||||
git commit --no-verify -q -m "VSCODIUM HELPER"
|
||||
|
||||
normalize_file "${1}"
|
||||
fi
|
||||
|
||||
echo "FILE: ${FILE}"
|
||||
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
if [[ -f "${FILE}.bak" ]]; then
|
||||
mv -f $FILE{.bak,}
|
||||
fi
|
||||
|
||||
git apply --reject "${FILE}" || true
|
||||
fi
|
||||
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
|
||||
echo
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
done
|
||||
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
|
||||
if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
|
||||
git reset -q --hard HEAD
|
||||
else
|
||||
git reset -q --hard HEAD~
|
||||
fi
|
||||
|
||||
echo "The patch has been generated."
|
||||
45
dev/update_api.sh
Executable file
45
dev/update_api.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
|
||||
# echo "url: ${URL}"
|
||||
FILE="${URL##*/}"
|
||||
# echo "file: ${FILE}"
|
||||
DIRECTORY="${FILE%.zip}"
|
||||
# echo "directory: ${DIRECTORY}"
|
||||
|
||||
if [[ ! -f "${FILE}" ]]; then
|
||||
wget "${URL}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DIRECTORY}" ]]; then
|
||||
unzip "${FILE}" -d "${DIRECTORY}"
|
||||
fi
|
||||
|
||||
BIN_PATH=$(find "${DIRECTORY}/bin" -type f ! -name "*.*")
|
||||
|
||||
LINE="$( grep -E '^[[:space:]]*(export[[:space:]]+)?VERSIONFOLDER[[:space:]]*=' "$BIN_PATH" | tail -n1 )"
|
||||
VERSIONFOLDER="${LINE#*=}"
|
||||
VERSIONFOLDER="${VERSIONFOLDER#\"}"
|
||||
VERSIONFOLDER="${VERSIONFOLDER%\"}"
|
||||
|
||||
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )" > product.json
|
||||
|
||||
APIS=$( jq -r '.extensionsEnabledWithApiProposalVersion' "${DIRECTORY}/${VERSIONFOLDER}/resources/app/product.json" )
|
||||
echo "$( jq --argjson v "${APIS}" 'setpath(["extensionsEnabledWithApiProposalVersion"]; $v)' product.json )" > product.json
|
||||
190
dev/update_patches.sh
Executable file
190
dev/update_patches.sh
Executable file
@@ -0,0 +1,190 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
generate_rejects() {
|
||||
local PATCH_FILE="$1"
|
||||
|
||||
if ! command -v python3 >/dev/null 2>&1; then
|
||||
echo "python3 not found; cannot create reject files for ${PATCH_FILE}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
PATCH_FOR_REJECT="${PATCH_FILE}" python3 <<'PY'
|
||||
import os
|
||||
import pathlib
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
|
||||
def chunk_needs_reject(raw_chunk: str) -> bool:
|
||||
"""Return True when a patch chunk cannot be applied nor reversed."""
|
||||
|
||||
chunk = raw_chunk if raw_chunk.endswith("\n") else raw_chunk + "\n"
|
||||
|
||||
def _run_git(extra_args):
|
||||
return subprocess.run(
|
||||
["git", "apply", "--check", "--ignore-whitespace", *extra_args],
|
||||
input=chunk,
|
||||
text=True,
|
||||
capture_output=True,
|
||||
)
|
||||
|
||||
forward = _run_git([])
|
||||
if forward.returncode == 0:
|
||||
return False
|
||||
|
||||
reverse = _run_git(["--reverse"])
|
||||
if reverse.returncode == 0:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
patch_path = os.environ["PATCH_FOR_REJECT"]
|
||||
with open(patch_path, "r", encoding="utf-8", errors="ignore") as src:
|
||||
content = src.read()
|
||||
|
||||
chunks = re.split(r'(?m)^diff --git ', content)
|
||||
for chunk in chunks:
|
||||
chunk = chunk.strip()
|
||||
if not chunk:
|
||||
continue
|
||||
chunk = "diff --git " + chunk
|
||||
match = re.search(r'^diff --git a/(.*?) b/(.*?)$', chunk, re.MULTILINE)
|
||||
if not match:
|
||||
continue
|
||||
a_path, b_path = match.groups()
|
||||
candidate = b_path if b_path != "/dev/null" else a_path
|
||||
if candidate in ("/dev/null", ""):
|
||||
continue
|
||||
if candidate.startswith("../") or candidate.startswith("..\\") or candidate.startswith("/"):
|
||||
continue
|
||||
dest = pathlib.Path(candidate + ".rej")
|
||||
if not chunk_needs_reject(chunk):
|
||||
continue
|
||||
dest.parent.mkdir(parents=True, exist_ok=True)
|
||||
with dest.open("w", encoding="utf-8") as fh:
|
||||
fh.write(chunk)
|
||||
if not chunk.endswith("\n"):
|
||||
fh.write("\n")
|
||||
print(f"generated reject: {dest}")
|
||||
PY
|
||||
}
|
||||
|
||||
check_file() {
|
||||
while [ $# -gt 1 ]; do
|
||||
git apply --reject "${1}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ -f "${1}.bak" ]]; then
|
||||
mv -f $1{.bak,}
|
||||
fi
|
||||
|
||||
if [[ -f "${1}" ]]; then
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
git add .
|
||||
git commit --no-verify -q -m "VSCODIUM HELPER"
|
||||
|
||||
echo applying patch: "${1}"
|
||||
|
||||
if ! git apply --ignore-whitespace "${1}"; then
|
||||
echo failed to apply patch "${1}"
|
||||
|
||||
git apply --reject --verbose "${1}"
|
||||
|
||||
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
|
||||
echo "no .rej generated by git; creating fallback rejects for ${1}"
|
||||
|
||||
if ! generate_rejects "${1}"; then
|
||||
echo "failed to generate reject files for ${1}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$( find . -name '*.rej' -print )" ]]; then
|
||||
echo "still no .rej after attempting to create them for ${1}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
while [[ -n "$( find . -name '*.rej' -print )" ]]; do
|
||||
find . -name '*.rej' -print
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
echo
|
||||
done
|
||||
|
||||
git restore .vscode/settings.json
|
||||
git add .
|
||||
git diff --staged -U1 > "${1}"
|
||||
fi
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD~
|
||||
fi
|
||||
}
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
for FILE in ../patches/*.patch; do
|
||||
if [[ "${FILE}" == *"/fix-policies.patch" ]]; then
|
||||
check_file "../patches/fix-keymap.patch" "../patches/fix-policies.patch"
|
||||
else
|
||||
check_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
fi
|
||||
|
||||
for ARCH in alpine linux osx windows; do
|
||||
for FILE in "../patches/${ARCH}/"*.patch; do
|
||||
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "linux" && "${FILE}" == *"/fix-dependencies.patch" ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
|
||||
echo "skip ${FILE}"
|
||||
else
|
||||
check_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${ARCH}" == "linux" ]]; then
|
||||
check_file "../patches/optional-tree-sitter.patch" "../patches/linux/fix-dependencies.patch"
|
||||
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
|
||||
elif [[ "${ARCH}" == "windows" ]]; then
|
||||
check_file "../patches/cli.patch" "../patches/windows/cli.patch"
|
||||
fi
|
||||
|
||||
for TARGET in client reh; do
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
done
|
||||
done
|
||||
19
docs/accounts-authentication.md
Normal file
19
docs/accounts-authentication.md
Normal file
@@ -0,0 +1,19 @@
|
||||
<!-- order: 0 -->
|
||||
|
||||
# Accounts authentication
|
||||
|
||||
## GitHub
|
||||
|
||||
The GitHub authentication has been patched to use personal access tokens.
|
||||
|
||||
Here is how to create a new personal access token: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
|
||||
|
||||
## Microsoft
|
||||
|
||||
The Microsoft authentication hasn't been patched so its status is unknown.
|
||||
|
||||
## When does it happen?
|
||||
|
||||
An account authentication occurs only when an extension is asking for it.
|
||||
|
||||
For `GitLens`, since the `12 non-plus` version, it won't ask for any new authentication.
|
||||
168
docs/build.md
168
docs/build.md
@@ -1,168 +0,0 @@
|
||||
# Build
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Dependencies](#dependencies)
|
||||
- [Linux](#dependencies-linux)
|
||||
- [MacOS](#dependencies-macos)
|
||||
- [Windows](#dependencies-windows)
|
||||
- [Build Scripts](#build-scripts)
|
||||
- [Build in Docker](#build-docker)
|
||||
- [X64](#build-docker-x64)
|
||||
- [ARM 32bits](#build-docker-arm32)
|
||||
- [Build Snap](#build-snap)
|
||||
- [Patch Update Process](#patch-update-process)
|
||||
- [Semi-Automated](#patch-update-process-semiauto)
|
||||
- [Manual](#patch-update-process-manual)
|
||||
|
||||
## <a id="dependencies"></a>Dependencies
|
||||
|
||||
- node 16
|
||||
- yarn
|
||||
- jq
|
||||
- git
|
||||
|
||||
### <a id="dependencies-linux"></a>Linux
|
||||
|
||||
- GCC
|
||||
- make
|
||||
- pkg-config
|
||||
- libx11-dev
|
||||
- libxkbfile-dev
|
||||
- libsecret-1-dev
|
||||
- fakeroot
|
||||
- rpm
|
||||
- rpmbuild
|
||||
- dpkg
|
||||
- python3
|
||||
- imagemagick (for AppImage)
|
||||
|
||||
### <a id="dependencies-macos"></a>MacOS
|
||||
- imagemagick
|
||||
- png2icns (`npm install png2icns -g`)
|
||||
- librsvg
|
||||
|
||||
|
||||
### <a id="dependencies-windows"></a>Windows
|
||||
|
||||
- powershell
|
||||
- sed
|
||||
- 7z
|
||||
- [WiX Toolset](http://wixtoolset.org/releases/)
|
||||
- python3
|
||||
- 'Tools for Native Modules' from official Node.js installer
|
||||
|
||||
## <a id="build-scripts"></a>Build Scripts
|
||||
|
||||
A build helper script can be found at `build/build.sh`.
|
||||
|
||||
- Linux: `./build/build.sh`
|
||||
- MacOS: `./build/build.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./build/build.sh`
|
||||
|
||||
### Insider
|
||||
|
||||
The `insider` version can be built with `./build/build.sh -i` on the `insider` branch.
|
||||
|
||||
You can try the lastest version with the command `./build/build.sh -il` but the patches might not be up to date.
|
||||
|
||||
## <a id="build-docker"></a>Build in Docker
|
||||
|
||||
To build for Linux, you can alternatively build VSCodium in docker
|
||||
|
||||
### <a id="build-docker-x64"></a>X64
|
||||
|
||||
Firstly, create the container with:
|
||||
```
|
||||
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
|
||||
```
|
||||
like
|
||||
```
|
||||
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
|
||||
cd /root/vscodium
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
export SHOULD_BUILD=yes
|
||||
export OS_NAME=linux
|
||||
export VSCODE_ARCH=x64
|
||||
|
||||
. build.sh
|
||||
```
|
||||
|
||||
### <a id="build-docker-arm32"></a>ARM 32bits
|
||||
|
||||
Firstly, create the container with:
|
||||
```
|
||||
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
|
||||
```
|
||||
like
|
||||
```
|
||||
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
cd /root/vscodium
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
export SHOULD_BUILD=yes
|
||||
export OS_NAME=linux
|
||||
export VSCODE_ARCH=armhf
|
||||
export npm_config_arch=armv7l
|
||||
export npm_config_force_process_config="true"
|
||||
|
||||
. build.sh
|
||||
```
|
||||
|
||||
## <a id="build-snap"></a>Build Snap
|
||||
|
||||
```
|
||||
# for the stable version
|
||||
cd ./stores/snapcraft/stable
|
||||
|
||||
# for the insider version
|
||||
cd ./stores/snapcraft/insider
|
||||
|
||||
# create the snap
|
||||
snapcraft --use-lxd
|
||||
|
||||
# verify the snap
|
||||
review-tools.snap-review --allow-classic codium*.snap
|
||||
```
|
||||
|
||||
## <a id="patch-update-process"></a>Patch Update Process
|
||||
|
||||
## <a id="patch-update-process-semiauto"></a>Semi-Automated
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- run `./build/update_patches.sh`
|
||||
- when the script pause at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `./script/code.sh` until everything ok
|
||||
- press any key to continue the script `update_patches.sh`
|
||||
|
||||
## <a id="patch-update-process-manual"></a>Manual
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- open `vscode` directory in **VSCodium**
|
||||
- revert all changes
|
||||
- run `git apply --reject ../patches/<name>.patch`
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `./script/code.sh` until everything ok
|
||||
- run `git diff > ../patches/<name>.patch`
|
||||
22
docs/ext-github-copilot.md
Normal file
22
docs/ext-github-copilot.md
Normal file
@@ -0,0 +1,22 @@
|
||||
<!-- order: 16 -->
|
||||
|
||||
# Extension: GitHub Copilot
|
||||
|
||||
Unlike Visual Studio Code, in VSCodium, Copilot features are disabled and not configured.
|
||||
|
||||
## Update your settings
|
||||
|
||||
In your settings, sets:
|
||||
```
|
||||
"chat.disableAIFeatures": false,
|
||||
```
|
||||
|
||||
## Configure product.json
|
||||
|
||||
You need to create a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
Then you will need to follow the guide [Running with Code OSS](https://github.com/microsoft/vscode-copilot-chat/blob/main/CONTRIBUTING.md#running-with-code-oss) with the `product.json` file created previously.
|
||||
You will need to add the properties: `trustedExtensionAuthAccess` and `defaultChatAgent`.
|
||||
44
docs/extensions-compatibility.md
Normal file
44
docs/extensions-compatibility.md
Normal file
@@ -0,0 +1,44 @@
|
||||
<!-- order: 0 -->
|
||||
|
||||
# Extensions compatibility
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Incompatibility](#incompatibility)
|
||||
- [Replacements](#replacements)
|
||||
- [C/C++](#cc)
|
||||
- [Python](#python)
|
||||
- [Remote](#remote)
|
||||
|
||||
## <a id="incompatibility"></a>Incompatibility
|
||||
|
||||
Most Microsoft extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.
|
||||
|
||||
Extensions incompatible with VSCodium **include**:
|
||||
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
|
||||
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) (explicitly unsupported, as [indicated in the FAQ](https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported))
|
||||
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
|
||||
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
|
||||
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
|
||||
- [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
|
||||
- [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit)
|
||||
- [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)
|
||||
|
||||
## <a id="replacements"></a>Replacements
|
||||
|
||||
The following extensions are functional replacements for incompatible extensions:
|
||||
|
||||
### <a id="cc"></a>C/C++
|
||||
|
||||
- [clangd](https://open-vsx.org/extension/llvm-vs-code-extensions/vscode-clangd) for full featured editing (including IntelliSense)
|
||||
- [Native Debug](https://open-vsx.org/extension/webfreak/debug) for Debugging with GDB + LLDB
|
||||
Note that there are many working debugging extensions and specialized ones including for microcontrollers.
|
||||
|
||||
### <a id="python"></a>Python
|
||||
|
||||
- [BasedPyright](https://open-vsx.org/extension/detachhead/basedpyright)
|
||||
|
||||
### <a id="remote"></a>Remote Development
|
||||
|
||||
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh) (SSH server must be configured with the setting `AllowTcpForwarding yes`.)
|
||||
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)
|
||||
136
docs/extensions.md
Normal file
136
docs/extensions.md
Normal file
@@ -0,0 +1,136 @@
|
||||
<!-- order: 15 -->
|
||||
|
||||
# Extensions + Marketplace
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Marketplace](#marketplace)
|
||||
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
|
||||
- [How to use a different extension gallery](#howto-switch-marketplace)
|
||||
- [How to self host your own extension gallery](#howto-selfhost-marketplace)
|
||||
- [Visual Studio Marketplace](#visual-studio-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Using the "VSIX Manager" Extension](#vsix-manager)
|
||||
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
|
||||
## <a id="marketplace"></a>Marketplace
|
||||
|
||||
Being a vscode based editor, VSCodium gets additional features by installing Visual Studio Code extensions.
|
||||
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use Visual Studio Code extensions in non-Microsoft products those need to be installed differently.
|
||||
|
||||
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by Visual Studio Code. Since that is a rather new project, you will likely miss some extensions you know from the Visual Studio Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the Visual Studio Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
|
||||
|
||||
## <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
|
||||
|
||||
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
## <a id="howto-switch-marketplace"></a>How to use a different extension gallery
|
||||
|
||||
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
|
||||
|
||||
You can either use the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL` ***(required)***
|
||||
- `VSCODE_GALLERY_ITEM_URL` ***(required)***
|
||||
- `VSCODE_GALLERY_CACHE_URL`
|
||||
- `VSCODE_GALLERY_CONTROL_URL`
|
||||
- `VSCODE_GALLERY_EXTENSION_URL_TEMPLATE` ***(required)***
|
||||
- `VSCODE_GALLERY_RESOURCE_URL_TEMPLATE`
|
||||
|
||||
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content like:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "", // required
|
||||
"itemUrl": "", // required
|
||||
"cacheUrl": "",
|
||||
"controlUrl": "",
|
||||
"extensionUrlTemplate": "", // required
|
||||
"resourceUrlTemplate": "",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
|
||||
|
||||
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.
|
||||
|
||||
There are likely other options, but the following were reported to work:
|
||||
|
||||
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
|
||||
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
|
||||
|
||||
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [Visual Studio Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the Visual Studio Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
|
||||
|
||||
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
|
||||
|
||||
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
|
||||
|
||||
## <a id="visual-studio-marketplace"></a>Visual Studio Marketplace
|
||||
|
||||
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU) which include:
|
||||
> Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
|
||||
|
||||
So, we can't provide any help if you intend to infringe their terms of use.
|
||||
|
||||
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
|
||||
|
||||
## <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
## <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```jsonc
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
"ms-vscode-remote.remote-wsl",
|
||||
// ...
|
||||
],
|
||||
```
|
||||
|
||||
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
|
||||
|
||||
## <a id="vsix-manager"></a>Using the "VSIX Manager" Extension
|
||||
|
||||
The [**VSIX Manager**](https://github.com/zokugun/vscode-vsix-manager) extension provides a powerful and user-friendly interface for managing `.vsix` files directly within VSCodium. Its author is the main maintainer of VSCodium ;)
|
||||
|
||||
It is particularly beneficial for:
|
||||
- **Support for Multiple Marketplaces**: Seamlessly install and manage extensions from several marketplaces at the same time, allowing access to a broader range of extensions.
|
||||
- **Local Files**: Manage a collection of `.vsix` files stored locally.
|
||||
- **GitHub/Forgejo Release**: Install the extension directly from its GitHub/Forgejo release pages.
|
||||
- **Fallback Options**
|
||||
|
||||
### <a id="use-cases"></a>Use Cases
|
||||
|
||||
- Developers working offline can easily manage `.vsix` files.
|
||||
- Teams can distribute specific versions of extensions across systems.
|
||||
- Enterprises with restricted environments can maintain control over installed extensions.
|
||||
- Users can connect to multiple marketplaces and access a wider range of extensions or switch seamlessly between them.
|
||||
|
||||
### <a id="marketplace-support"></a>Marketplace Support
|
||||
|
||||
The **VSIX Manager** extension supports managing extensions from several marketplaces simultaneously. This feature enables:
|
||||
- **Access to Diverse Extensions**: Install extensions from different sources like Open VSX or private repositories.
|
||||
- **Fallback Options**: Ensure extension availability even if one marketplace is temporarily inaccessible.
|
||||
- **Enterprise Flexibility**: Use private or self-hosted marketplaces alongside public ones to meet security and compliance requirements.
|
||||
- **Custom Configurations**: Prioritize specific marketplaces for particular needs while keeping access to others.
|
||||
|
||||
## [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
|
||||
50
docs/getting-started.md
Normal file
50
docs/getting-started.md
Normal file
@@ -0,0 +1,50 @@
|
||||
<!-- order: 5 -->
|
||||
|
||||
# Getting Started with VSCodium
|
||||
|
||||
This guide will help you get started with VSCodium.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Installation](#installation)
|
||||
- [First Steps](#first-steps)
|
||||
- [Basic Usage](#basic-usage)
|
||||
- [Keyboard Shortcuts](#keyboard-shortcuts)
|
||||
- [Next Steps](#next-steps)
|
||||
|
||||
## <a id="installation"></a>Installation
|
||||
|
||||
VSCodium can be installed on Windows, macOS, and Linux. Visit the [download page](https://vscodium.com/#install) for installation instructions.
|
||||
|
||||
## <a id="first-steps"></a>First Steps
|
||||
|
||||
After installing VSCodium, here are some first steps to get started:
|
||||
|
||||
1. **Open a folder**: Use File > Open Folder to open your project
|
||||
2. **Install extensions**: Click on the Extensions icon in the sidebar to browse and install extensions
|
||||
3. **Configure settings**: Use File > Preferences > Settings to customize your editor
|
||||
|
||||
## <a id="basic-usage"></a>Basic Usage
|
||||
|
||||
VSCodium works just like Visual Studio Code, with a few differences:
|
||||
|
||||
- It uses Open VSX for extensions by default instead of the Visual Studio Marketplace
|
||||
- It doesn't include Microsoft telemetry or branding
|
||||
- Some proprietary features may not be available
|
||||
|
||||
## <a id="keyboard-shortcuts"></a>Keyboard Shortcuts
|
||||
|
||||
Here are some essential keyboard shortcuts to get you started:
|
||||
|
||||
- `Ctrl+P` (Windows/Linux) or `Cmd+P` (macOS): Quick Open, Go to File
|
||||
- `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (macOS): Show Command Palette
|
||||
- `Ctrl+,` (Windows/Linux) or `Cmd+,` (macOS): User Settings
|
||||
- `Ctrl+K Ctrl+S` (Windows/Linux) or `Cmd+K Cmd+S` (macOS): Keyboard Shortcuts
|
||||
|
||||
## <a id="next-steps"></a>Next Steps
|
||||
|
||||
Once you're comfortable with the basics, you might want to:
|
||||
|
||||
- Explore the [documentation](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) for more details
|
||||
- Join the [community](https://github.com/VSCodium/vscodium/discussions) to ask questions and share tips
|
||||
- Contribute to the [project](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md) if you're interested
|
||||
215
docs/howto-build.md
Normal file
215
docs/howto-build.md
Normal file
@@ -0,0 +1,215 @@
|
||||
<!-- order: 35 -->
|
||||
|
||||
# How to build VSCodium
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Dependencies](#dependencies)
|
||||
- [Linux](#dependencies-linux)
|
||||
- [MacOS](#dependencies-macos)
|
||||
- [Windows](#dependencies-windows)
|
||||
- [Build for Development](#build-dev)
|
||||
- [Build for CI/Downstream](#build-ci)
|
||||
- [Build Snap](#build-snap)
|
||||
- [Patch Update Process](#patch-update-process)
|
||||
- [Semi-Automated](#patch-update-process-semiauto)
|
||||
- [Manual](#patch-update-process-manual)
|
||||
|
||||
## <a id="dependencies"></a>Dependencies
|
||||
|
||||
- node (check [.nvmrc](../.nvmrc) for version)
|
||||
- jq
|
||||
- git
|
||||
- python3 3.11
|
||||
- rustup
|
||||
|
||||
### <a id="dependencies-linux"></a>Linux
|
||||
|
||||
- gcc
|
||||
- g++
|
||||
- make
|
||||
- pkg-config
|
||||
- libx11-dev
|
||||
- libxkbfile-dev
|
||||
- libsecret-1-dev
|
||||
- libkrb5-dev
|
||||
- fakeroot
|
||||
- rpm
|
||||
- rpmbuild
|
||||
- dpkg
|
||||
- imagemagick (for AppImage)
|
||||
- snapcraft
|
||||
|
||||
### <a id="dependencies-macos"></a>MacOS
|
||||
|
||||
see [the common dependencies](#dependencies)
|
||||
|
||||
### <a id="dependencies-windows"></a>Windows
|
||||
|
||||
The build scripts are written in Bash, so on Windows you must run them inside **Git Bash** (bundled with [Git for Windows](https://gitforwindows.org/)) or **WSL2**.
|
||||
|
||||
#### Required tools
|
||||
|
||||
- **Git for Windows** — provides Git Bash, `sed`, and POSIX utilities used by the build scripts:
|
||||
|
||||
```cmd
|
||||
winget install --id Git.Git -e
|
||||
```
|
||||
|
||||
- **Node.js** — exact version is specified in [`.nvmrc`](../.nvmrc). Use [nvm-windows](https://github.com/coreybutler/nvm-windows) to manage versions:
|
||||
|
||||
```cmd
|
||||
nvm install <version-from-.nvmrc>
|
||||
nvm use <version-from-.nvmrc>
|
||||
```
|
||||
|
||||
Alternatively, download directly from [nodejs.org](https://nodejs.org/). During installation, enable **"Automatically install the necessary tools"** to get the C++ build tools (required for native Node addons).
|
||||
|
||||
- **jq** — JSON processor used throughout the build scripts:
|
||||
|
||||
```cmd
|
||||
winget install --id jqlang.jq -e
|
||||
```
|
||||
|
||||
- **7-Zip** — used to package `.zip` archives:
|
||||
|
||||
```cmd
|
||||
winget install --id 7zip.7zip -e
|
||||
```
|
||||
|
||||
- **Python 3.11** — required by the VS Code build system:
|
||||
|
||||
```cmd
|
||||
winget install --id Python.Python.3.11 -e
|
||||
```
|
||||
|
||||
Ensure `python` / `python3` is on your `PATH` after installation.
|
||||
|
||||
- **Rustup** — required to compile some native VS Code modules:
|
||||
|
||||
```cmd
|
||||
winget install --id Rustlang.Rustup -e
|
||||
```
|
||||
|
||||
Restart your shell afterwards so `cargo` and `rustc` are on your `PATH`.
|
||||
|
||||
#### Optional tools
|
||||
|
||||
- **WiX Toolset v3** _(only needed for `.msi` installer packaging, i.e., the `-p` flag)_:
|
||||
|
||||
Download from [wixtoolset.org](https://wixtoolset.org/releases/) and ensure `candle.exe` / `light.exe` are on your `PATH`.
|
||||
|
||||
#### PATH verification
|
||||
|
||||
After installing all tools, verify each is discoverable from Git Bash:
|
||||
|
||||
```bash
|
||||
node --version # should match .nvmrc
|
||||
npm --version
|
||||
jq --version
|
||||
python3 --version # should be 3.11.x
|
||||
cargo --version
|
||||
7z i 2>&1 | head -1
|
||||
git --version
|
||||
```
|
||||
|
||||
If any command is not found, add its install directory to your `PATH` via **System Properties → Environment Variables → Path**.
|
||||
|
||||
## <a id="build-dev"></a>Build for Development
|
||||
|
||||
A build helper script can be found at `dev/build.sh`.
|
||||
|
||||
- Linux: `./dev/build.sh`
|
||||
- MacOS: `./dev/build.sh`
|
||||
- Windows (Git Bash — **recommended**): `"C:\Program Files\Git\bin\bash.exe" ./dev/build.sh`
|
||||
- Windows (PowerShell): `powershell -ExecutionPolicy ByPass -File .\dev\build.ps1`
|
||||
|
||||
> **Note for Windows users**: Git Bash is the recommended shell because the build scripts rely on POSIX utilities (`sed`, `grep`, `find`, etc.) bundled with Git for Windows. If you use WSL2, follow the Linux dependencies section instead.
|
||||
|
||||
### Insider
|
||||
|
||||
The `insider` version can be built with `./dev/build.sh -i` on the `insider` branch.
|
||||
|
||||
You can try the latest version with the command `./dev/build.sh -il` but the patches might not be up to date.
|
||||
|
||||
### Flags
|
||||
|
||||
The script `dev/build.sh` provides several flags:
|
||||
|
||||
- `-i`: build the Insiders version
|
||||
- `-l`: build with latest version of Visual Studio Code
|
||||
- `-o`: skip the build step
|
||||
- `-p`: generate the packages/assets/installers
|
||||
- `-s`: do not retrieve the source code of Visual Studio Code, it won't delete the existing build
|
||||
|
||||
## <a id="build-ci"></a>Build for CI/Downstream
|
||||
|
||||
Here is the base script to build VSCodium:
|
||||
|
||||
```bash
|
||||
# Export necessary environment variables
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export CI_BUILD="no"
|
||||
export OS_NAME="linux"
|
||||
export VSCODE_ARCH="${vscode_arch}"
|
||||
export VSCODE_QUALITY="stable"
|
||||
export RELEASE_VERSION="${version}"
|
||||
|
||||
. get_repo.sh
|
||||
. build.sh
|
||||
```
|
||||
|
||||
To go further, you should look at how we build it:
|
||||
|
||||
- Linux: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-linux.yml
|
||||
- macOS: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-macos.yml
|
||||
- Windows: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-windows.yml
|
||||
|
||||
The `./dev/build.sh` script is for development purpose and must be avoided for a packaging purpose.
|
||||
|
||||
## <a id="build-snap"></a>Build Snap
|
||||
|
||||
```
|
||||
# for the stable version
|
||||
cd ./stores/snapcraft/stable
|
||||
|
||||
# for the insider version
|
||||
cd ./stores/snapcraft/insider
|
||||
|
||||
# create the snap
|
||||
snapcraft --use-lxd
|
||||
|
||||
# verify the snap
|
||||
review-tools.snap-review --allow-classic codium*.snap
|
||||
```
|
||||
|
||||
## <a id="patch-update-process"></a>Patch Update Process
|
||||
|
||||
## <a id="patch-update-process-semiauto"></a>Semi-Automated
|
||||
|
||||
- run `./dev/build.sh`, if a patch is failing then,
|
||||
- run `./dev/update_patches.sh`
|
||||
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- fix all the `*.rej` files
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh` until everything is ok
|
||||
- press any key to continue the script `update_patches.sh`
|
||||
|
||||
## <a id="patch-update-process-manual"></a>Manual
|
||||
|
||||
- run `./dev/build.sh`, if a patch is failing then,
|
||||
- run `./dev/patch.sh <name>.patch` where `<name>.patch` is the failed patch
|
||||
- open `vscode` directory in a new **VSCodium**'s window
|
||||
- fix all the `*.rej` files
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh` until everything is ok
|
||||
- go back to the command line running `./dev/patch.sh`, press `enter` to validate the changes and it will update the patch
|
||||
|
||||
### <a id="icons"></a>icons/build_icons.sh
|
||||
|
||||
To run `icons/build_icons.sh`, you will need:
|
||||
|
||||
- imagemagick
|
||||
- png2icns (`npm install png2icns -g`)
|
||||
- librsvg
|
||||
44
docs/index.md
Normal file
44
docs/index.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Documentation
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Getting Started with VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md)
|
||||
- [Installation](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#installation)
|
||||
- [First Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#first-steps)
|
||||
- [Basic Usage](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#basic-usage)
|
||||
- [Keyboard Shortcuts](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#keyboard-shortcuts)
|
||||
- [Next Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#next-steps)
|
||||
- [Getting all the Telemetry Out](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md)
|
||||
- [Telemetry in VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#telemetry)
|
||||
- [Replacements to Microsoft Online Services](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#replacements)
|
||||
- [Checking for Telemetry](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#checking)
|
||||
- [Additional Privacy Settings](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#additional-settings)
|
||||
- [VSCodium Announcements](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#announcements)
|
||||
- [Malicious & Deprecated Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#malicious-extensions)
|
||||
- [Extensions and Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md)
|
||||
- [Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#marketplace)
|
||||
- [How to use the OpenVSX Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-openvsx-marketplace)
|
||||
- [How to use a different extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-switch-marketplace)
|
||||
- [How to self host your own extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-selfhost-marketplace)
|
||||
- [Visual Studio Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#visual-studio-marketplace)
|
||||
- [Proprietary Debugging Tools](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-extensions)
|
||||
- [Using the "VSIX Manager" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#vsix-manager)
|
||||
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
- [Ext: GitHub Copilot](https://github.com/VSCodium/vscodium/blob/master/docs/ext-github-copilot.md)
|
||||
- [Migration](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md)
|
||||
- [Manual Migration from Visual Studio Code to VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#manual-migration)
|
||||
- [Semi-Automatic Migration with "Sync Settings" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#semi-automatic-migration)
|
||||
- [Usage](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md)
|
||||
- [Sign in with GitHub](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#signin-github)
|
||||
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
|
||||
- [How do I run VSCodium in portable mode?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#portable)
|
||||
- [How do I fix the default file manager?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#terminal-support)
|
||||
- [Troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md)
|
||||
- [Linux](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#linux)
|
||||
- [Other Resources](https://github.com/VSCodium/vscodium/blob/master/docs/others.md)
|
||||
- [What are reh and reh-web archives?](https://github.com/VSCodium/vscodium/blob/master/docs/others.md#reh)
|
||||
- [Contributing Guidelines](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
|
||||
- [Building VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
|
||||
54
docs/migration.md
Normal file
54
docs/migration.md
Normal file
@@ -0,0 +1,54 @@
|
||||
<!-- order: 20 -->
|
||||
|
||||
# Migration
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Manual Migration from Visual Studio Code to VSCodium](#manual-migration)
|
||||
- [Semi-Automatic Migration with "Sync Settings" Extension](#semi-automatic-migration)
|
||||
|
||||
## <a id="manual-migration"></a>Manual Migration from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
- __Linux__: `$HOME/.config/Code/User`
|
||||
|
||||
You can copy these files to the VSCodium user settings folder:
|
||||
|
||||
- __Windows__: `%APPDATA%\VSCodium\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
|
||||
- __Linux__: `$HOME/.config/VSCodium/User`
|
||||
|
||||
To copy your settings manually:
|
||||
|
||||
- In Visual Studio Code, go to Settings (`Meta+,`)
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="semi-automatic-migration"></a>Semi-Automatic Migration with "Sync Settings" Extension
|
||||
|
||||
The [**Sync Settings**](https://github.com/zokugun/vscode-sync-settings) extension can simplify the migration process by enabling synchronization of settings, keybindings, extensions, and more between Visual Studio Code and VSCodium. Its author is the main maintainer of VSCodium ;)
|
||||
|
||||
The extension is available in the Visual Studio Marketplace, OpenVSX or directly in its GitHub repository.
|
||||
|
||||
### Steps:
|
||||
|
||||
1. Install the **Sync Settings** extension in both Visual Studio Code and VSCodium.
|
||||
2. Configure the extension on both Visual Studio Code and VSCodium:
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Open the repository settings` and execute the command.
|
||||
- Configure the repository
|
||||
3. Export your current settings from Visual Studio Code:
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Upload (user -> repository)` and execute the command.
|
||||
4. Import the settings into VSCodium:
|
||||
- I recommend the setting `"syncSettings.openOutputOnActivity": true,`.
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Download (repository -> user)` and execute the command.
|
||||
- Wait for all the extensions to be downloaded and installed (follow logs in the `Output` panel) before restarting VSCodium.
|
||||
|
||||
This method ensures that all supported configurations are seamlessly transferred.
|
||||
12
docs/others.md
Normal file
12
docs/others.md
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- order: 30 -->
|
||||
|
||||
# Other Resources
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [What are reh and reh-web archives?](#reh)
|
||||
|
||||
## <a id="reh"></a>What are reh and reh-web archives?
|
||||
|
||||
- Remote Host (`reh`) is the server component for remote ssh/wsl which runs it on a "remote" computer and makes that remote computer accessible via VSCodium.
|
||||
- Web Host (`reh-web`) is the server component of the command `codium serve-web` which runs it locally and makes VSCodium accessible via a browser.
|
||||
43
docs/patches.md
Normal file
43
docs/patches.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Patches
|
||||
|
||||
Documentation for VSCodium patches applied on top of VS Code.
|
||||
|
||||
---
|
||||
|
||||
## fix-policies
|
||||
|
||||
**Replace `@vscode/policy-watcher` with `@vscodium/policy-watcher`**
|
||||
|
||||
VS Code uses `@vscode/policy-watcher` to enforce Group Policy Objects (GPOs) on
|
||||
Windows. That package reads from:
|
||||
|
||||
```
|
||||
HKLM\SOFTWARE\Policies\Microsoft\<productName>
|
||||
```
|
||||
|
||||
VSCodium forks this into `@vscodium/policy-watcher`, which takes a separate
|
||||
`vendorName` argument. The `createWatcher()` call becomes:
|
||||
|
||||
```ts
|
||||
createWatcher('VSCodium', this.productName, ...)
|
||||
```
|
||||
|
||||
Because VSCodium sets `product.nameLong = 'VSCodium'` (via `prepare_vscode.sh`),
|
||||
`this.productName` resolves to `'VSCodium'` at runtime. Therefore, the final
|
||||
Windows registry key that VSCodium reads policies from is:
|
||||
|
||||
```
|
||||
HKLM\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName>
|
||||
```
|
||||
|
||||
(or `HKCU\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName>` for per-user policies)
|
||||
|
||||
This differs from VS Code's path (`Microsoft\VSCode`) and is the root cause of
|
||||
[issue #2714](https://github.com/VSCodium/vscodium/issues/2714) where users mirror
|
||||
VS Code's registry structure and find their GPOs ignored. Enterprise admins must
|
||||
use the VSCodium-specific registry path.
|
||||
|
||||
### References
|
||||
|
||||
- [VSCodium issue #2714](https://github.com/VSCodium/vscodium/issues/2714)
|
||||
- [VSCodium/policy-watcher — RegistryPolicy.hh](https://github.com/VSCodium/policy-watcher/blob/main/src/windows/RegistryPolicy.hh)
|
||||
87
docs/telemetry.md
Normal file
87
docs/telemetry.md
Normal file
@@ -0,0 +1,87 @@
|
||||
<!-- order: 10 -->
|
||||
|
||||
# Getting all telemetry out
|
||||
|
||||
This page explains how VSCodium handles telemetry and how it enhances your privacy.
|
||||
|
||||
## Table of contents
|
||||
|
||||
- [Telemetry in VSCodium](#telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacements)
|
||||
- [Checking for telemetry](#checking)
|
||||
- [VSCodium announcements](#announcements)
|
||||
- [Malicious & deprecated extensions](#malicious-extensions)
|
||||
|
||||
## <a id="telemetry"></a>Telemetry in VSCodium
|
||||
|
||||
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
|
||||
|
||||
We disable all the following telemetry-related settings by default to enhance your privacy:
|
||||
|
||||
```
|
||||
telemetry.telemetryLevel
|
||||
telemetry.enableCrashReporter
|
||||
telemetry.enableTelemetry
|
||||
telemetry.editStats.enabled
|
||||
workbench.enableExperiments
|
||||
workbench.settings.enableNaturalLanguageSearch
|
||||
workbench.commandPalette.experimental.enableNaturalLanguageSearch
|
||||
```
|
||||
|
||||
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
|
||||
|
||||
**Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.**
|
||||
For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft. Be sure to check each extension's settings page to disable their telemetry if applicable.
|
||||
|
||||
### Update services
|
||||
|
||||
By default, the app periodically fetches connections to check for the latest version available to download and install.
|
||||
Extensions are also checked for updates automatically from time to time.
|
||||
|
||||
If you want to prevent such behaviors, modify the following preferences:
|
||||
|
||||
For the app itself:
|
||||
|
||||
- `update.mode` -> `manual` (or `none`)
|
||||
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
|
||||
|
||||
For extensions:
|
||||
|
||||
- `extensions.autoUpdate` -> `false`
|
||||
- `extensions.autoCheckUpdates` -> `false`
|
||||
|
||||
_Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself._
|
||||
|
||||
### Feedback telemetry
|
||||
|
||||
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
|
||||
|
||||
## <a id="replacements"></a>Replacements to Microsoft Online Services
|
||||
|
||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L132-L133) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to the Microsoft online service.
|
||||
|
||||
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L119) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft either.
|
||||
|
||||
## <a id="checking"></a>Checking for telemetry
|
||||
|
||||
If you want to verify that no telemetry is being sent, you can use network monitoring tools like:
|
||||
|
||||
- Wireshark
|
||||
- Little Snitch (macOS)
|
||||
- GlassWire (Windows)
|
||||
|
||||
Look for connections to Microsoft domains and telemetry endpoints.
|
||||
|
||||
## <a id="announcements"></a>VSCodium announcements
|
||||
|
||||
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.
|
||||
|
||||
If you prefer to disable this feature, you can disable the preference `workbench.welcomePage.extraAnnouncements`.
|
||||
|
||||
## <a id="malicious-extensions"></a>Malicious & deprecated extensions
|
||||
|
||||
The definitions for malicious and deprecated extensions are dynamically loaded from the following URL:
|
||||
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json
|
||||
|
||||
If you prefer to avoid any external connections, you can disable the preference `extensions.excludeUnsafes`.
|
||||
However, this is not recommended as it may reduce the safety of your environment.
|
||||
154
docs/troubleshooting.md
Normal file
154
docs/troubleshooting.md
Normal file
@@ -0,0 +1,154 @@
|
||||
<!-- order: 25 -->
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Linux](#linux)
|
||||
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
|
||||
- [Text and/or the entire interface not appearing](#linux-rendering-glitches)
|
||||
- [Global menu workaround for KDE](#linux-kde-global-menu)
|
||||
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
|
||||
- [Remote SSH doesn't work](#linux-remote-ssh)
|
||||
- [The window doesn't show up](#linux-no-window)
|
||||
- [Windows](#windows)
|
||||
- [Group Policy Objects (GPOs) are ignored](#windows-gpo)
|
||||
- ["Open with VSCodium" missing from context menu](#windows-context-menu)
|
||||
- [Windows Defender flags the installer as malware](#windows-defender)
|
||||
|
||||
## <a id="linux"></a>Linux
|
||||
|
||||
### <a id="linux-fonts-rectangle"></a>_Fonts showing up as rectangles_
|
||||
|
||||
The following command should help:
|
||||
|
||||
```
|
||||
rm -rf ~/.cache/fontconfig
|
||||
rm -rf ~/snap/codium/common/.cache
|
||||
fc-cache -r
|
||||
```
|
||||
|
||||
### <a id="linux-rendering-glitches"></a>_Text and/or the entire interface not appearing_
|
||||
|
||||
You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#190437) when compiling Mesa shaders, which has affected all Visual Studio Code and VSCodium versions for Linux distributions since 1.82. The current workaround (see microsoft/vscode#190437) is to delete the GPU cache as follows:
|
||||
|
||||
```bash
|
||||
rm -rf ~/.config/VSCodium/GPUCache
|
||||
```
|
||||
|
||||
### <a id="linux-kde-global-menu"></a>_Global menu workaround for KDE_
|
||||
|
||||
Install these packages on Fedora:
|
||||
|
||||
- libdbusmenu-devel
|
||||
- dbus-glib-devel
|
||||
- libdbusmenu
|
||||
|
||||
On Ubuntu this package is called `libdbusmenu-glib4`.
|
||||
|
||||
Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/91)
|
||||
|
||||
### <a id="linux-flatpak-most-common-issues"></a>_Flatpak most common issues_
|
||||
|
||||
- blurry screen with HiDPI on wayland run:
|
||||
```bash
|
||||
flatpak override --user --nosocket=wayland com.vscodium.codium
|
||||
```
|
||||
- To execute commands on the host system, run inside the sandbox
|
||||
```bash
|
||||
flatpak-spawn --host <COMMAND>
|
||||
# or
|
||||
host-spawn <COMMAND>
|
||||
```
|
||||
- Where is my X extension? AKA modify product.json
|
||||
TL;DR: use https://open-vsx.org/extension/zokugun/vsix-manager
|
||||
|
||||
- SDKs
|
||||
see [this](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#sdks)
|
||||
|
||||
- If you have any other problems with the flatpak package try to look on the [FAQ](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#faq) maybe the solution is already there or open an [issue](https://github.com/flathub/com.vscodium.codium/issues).
|
||||
|
||||
### <a id="linux-remote-ssh"></a>_Remote SSH doesn't work_
|
||||
|
||||
Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh).
|
||||
|
||||
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
|
||||
|
||||
It might requires additional dependencies due to the OS/distro (alpine).
|
||||
|
||||
### <a id="linux-no-window"></a>_The window doesn't show up_
|
||||
|
||||
If you are under Wayland:
|
||||
|
||||
- try the command `codium --verbose`
|
||||
- if you see an error like `:ERROR:ui/gl/egl_util.cc:92] EGL Driver message (Error) eglCreateContext: Requested version is not supported`
|
||||
- try `codium --ozone-platform=x11`
|
||||
|
||||
## <a id="windows"></a>Windows
|
||||
|
||||
### <a id="windows-gpo"></a>_Group Policy Objects (GPOs) are ignored_
|
||||
|
||||
VSCodium uses its own policy-watcher library (`@vscodium/policy-watcher`) which reads GPO values from a **different registry path** than VS Code.
|
||||
|
||||
**VSCodium reads policies from:**
|
||||
|
||||
```
|
||||
HKLM\SOFTWARE\Policies\VSCodium\VSCodium
|
||||
```
|
||||
|
||||
**VS Code reads policies from:**
|
||||
|
||||
```
|
||||
HKLM\SOFTWARE\Policies\Microsoft\VSCode
|
||||
```
|
||||
|
||||
If you are deploying VSCodium in an enterprise environment via Group Policy:
|
||||
|
||||
1. Copy the `.admx` template file to `C:\Windows\PolicyDefinitions\`
|
||||
2. Copy the `.adml` language file to `C:\Windows\PolicyDefinitions\en-US\`
|
||||
3. Open `gpedit.msc` and configure policies under the VSCodium group
|
||||
4. Verify the resulting registry key exists at `HKLM\SOFTWARE\Policies\VSCodium\VSCodium` (not `Microsoft\VSCodium`)
|
||||
|
||||
If you set policies manually via Registry Editor, make sure you create the key at the correct path:
|
||||
|
||||
```
|
||||
HKLM\SOFTWARE\Policies\VSCodium\VSCodium\<PolicyName> (REG_SZ or REG_DWORD)
|
||||
```
|
||||
|
||||
For example, to set `Update: Mode` to `none`:
|
||||
|
||||
```
|
||||
Registry key: HKLM\SOFTWARE\Policies\VSCodium\VSCodium
|
||||
Value name: update.mode
|
||||
Value type: REG_SZ
|
||||
Value data: none
|
||||
```
|
||||
|
||||
Per-user policies are also supported under `HKCU\SOFTWARE\Policies\VSCodium\VSCodium` (machine policies take precedence).
|
||||
|
||||
### <a id="windows-context-menu"></a>_"Open with VSCodium" missing from context menu_
|
||||
|
||||
If the **"Open with VSCodium"** option does not appear after installation (even with the checkbox checked during setup):
|
||||
|
||||
1. **Run the installer again** and ensure _"Add 'Open with VSCodium' action to Windows Explorer file context menu"_ is checked.
|
||||
2. **Windows 11 note**: Windows 11 hides most context menu entries behind **Shift + Right-click** ("Show more options"). VSCodium's entry may be present but hidden in the new condensed menu. Try Shift + Right-click to see the classic context menu.
|
||||
3. If the entry still does not appear, you can add it manually via Registry Editor:
|
||||
|
||||
```
|
||||
Key: HKEY_CLASSES_ROOT\*\shell\Open with VSCodium
|
||||
Value: (Default) = "Open with VSCodium"
|
||||
|
||||
Key: HKEY_CLASSES_ROOT\*\shell\Open with VSCodium\command
|
||||
Value: (Default) = "C:\Program Files\VSCodium\VSCodium.exe" "%1"
|
||||
```
|
||||
|
||||
Adjust the install path to match your actual installation directory.
|
||||
|
||||
### <a id="windows-defender"></a>_Windows Defender flags the installer as malware_
|
||||
|
||||
Some users report Windows Defender detecting the VSCodium installer as `Cinjo` or another threat. This is a **false positive** caused by the unsigned nature of certain build artifacts.
|
||||
|
||||
- Download VSCodium **only from the official [GitHub Releases page](https://github.com/VSCodium/vscodium/releases)**.
|
||||
- Verify the SHA256/SHA512 checksum of the downloaded file against the `.sha256` or `.sha512` file published alongside each release.
|
||||
- If Defender blocks the installer, add an exclusion for the downloaded file, run the install, then remove the exclusion.
|
||||
- You can also report the false positive directly to Microsoft via the [Windows Defender Security Intelligence submission portal](https://www.microsoft.com/en-us/wdsi/filesubmission).
|
||||
76
docs/usage.md
Normal file
76
docs/usage.md
Normal file
@@ -0,0 +1,76 @@
|
||||
<!-- order: 25 -->
|
||||
|
||||
# Usage
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I fix the default file manager?](#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
- [From Linux .tar.gz](#from-linux-targz)
|
||||
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
|
||||
|
||||
In some cases, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
|
||||
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
|
||||
|
||||
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
|
||||
```
|
||||
[Default Applications]
|
||||
inode/directory=org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
You can find your regular file manager with the command:
|
||||
```
|
||||
> grep directory /usr/share/applications/mimeinfo.cache
|
||||
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
For macOS and Windows:
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'codium' command in PATH`.
|
||||
|
||||

|
||||
|
||||
This allows you to open files or directories in VSCodium directly from your terminal:
|
||||
|
||||
```bash
|
||||
~/in-my-project $ codium . # open this directory
|
||||
~/in-my-project $ codium file.txt # open this file
|
||||
```
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
|
||||
|
||||
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
|
||||
|
||||
### <a id="from-linux-targz"></a>From Linux .tar.gz
|
||||
|
||||
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
|
||||
7
font-size/.artifactrc.yml
Normal file
7
font-size/.artifactrc.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
artifacts:
|
||||
"@daiyam/artifact-lang-js":
|
||||
version: 0.9.3
|
||||
requires:
|
||||
- "22"
|
||||
"@daiyam/artifact-lang-ts":
|
||||
version: 0.6.3
|
||||
17
font-size/.editorconfig
Normal file
17
font-size/.editorconfig
Normal file
@@ -0,0 +1,17 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = tab
|
||||
tab_width = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[{*.yml,*.yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
29
font-size/.fixpackrc
Normal file
29
font-size/.fixpackrc
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"sortToTop": [
|
||||
"name",
|
||||
"displayName",
|
||||
"description",
|
||||
"version",
|
||||
"private",
|
||||
"author",
|
||||
"publisher",
|
||||
"license",
|
||||
"homepage",
|
||||
"repository",
|
||||
"bugs",
|
||||
"engines",
|
||||
"type",
|
||||
"bin",
|
||||
"exports",
|
||||
"main",
|
||||
"module",
|
||||
"types",
|
||||
"typesVersions",
|
||||
"scripts",
|
||||
"dependencies",
|
||||
"devDependencies",
|
||||
"optionalDependencies",
|
||||
"keywords"
|
||||
],
|
||||
"finalNewLine": true
|
||||
}
|
||||
2
font-size/.gitignore
vendored
Normal file
2
font-size/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/node_modules/
|
||||
/lib/
|
||||
1
font-size/.nvmrc
Normal file
1
font-size/.nvmrc
Normal file
@@ -0,0 +1 @@
|
||||
v22.21.1
|
||||
9
font-size/.vscode/settings.json
vendored
Normal file
9
font-size/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"search.exclude": {
|
||||
"package-lock.json": true,
|
||||
"lib/**": true,
|
||||
},
|
||||
"taskExplorer.exclude": [
|
||||
".husky",
|
||||
],
|
||||
}
|
||||
153
font-size/.xo-config.json
Normal file
153
font-size/.xo-config.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"ignores": [
|
||||
"*.config.js",
|
||||
"*.config.ts"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/ban-types": "off",
|
||||
"@typescript-eslint/brace-style": [
|
||||
"error",
|
||||
"stroustrup"
|
||||
],
|
||||
"@typescript-eslint/class-literal-property-style": [
|
||||
"error",
|
||||
"fields"
|
||||
],
|
||||
"@typescript-eslint/keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
"overrides": {
|
||||
"if": {
|
||||
"after": false
|
||||
},
|
||||
"for": {
|
||||
"after": false
|
||||
},
|
||||
"switch": {
|
||||
"after": false
|
||||
},
|
||||
"while": {
|
||||
"after": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/member-ordering": [
|
||||
"error",
|
||||
{
|
||||
"default": [
|
||||
"field",
|
||||
"constructor",
|
||||
"get",
|
||||
"set",
|
||||
"method"
|
||||
]
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/naming-convention": [
|
||||
"error",
|
||||
{
|
||||
"selector": "variable",
|
||||
"modifiers": ["const", "global"],
|
||||
"format": ["camelCase", "UPPER_CASE"],
|
||||
"filter": {
|
||||
"regex": "^(__filename|__dirname)$",
|
||||
"match": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"selector": "variable",
|
||||
"format": ["camelCase"],
|
||||
"filter": {
|
||||
"regex": "^(__filename|__dirname)$",
|
||||
"match": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/no-confusing-void-expression": "off",
|
||||
"@typescript-eslint/no-dynamic-delete": "off",
|
||||
"@typescript-eslint/no-inferrable-types": "off",
|
||||
"@typescript-eslint/no-namespace": "off",
|
||||
"@typescript-eslint/object-curly-spacing": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"@typescript-eslint/parameter-properties": "off",
|
||||
"@typescript-eslint/prefer-promise-reject-errors": "off",
|
||||
"@typescript-eslint/return-await": "off",
|
||||
"arrow-parens": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"capitalized-comments": "off",
|
||||
"complexity": "off",
|
||||
"default-case": "off",
|
||||
"import/extensions": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"import/order": [
|
||||
"error",
|
||||
{
|
||||
"groups": [
|
||||
"builtin",
|
||||
"external",
|
||||
"internal",
|
||||
"parent",
|
||||
"sibling",
|
||||
"index",
|
||||
"object"
|
||||
],
|
||||
"alphabetize": {
|
||||
"order": "asc",
|
||||
"caseInsensitive": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"max-depth": [
|
||||
"error",
|
||||
8
|
||||
],
|
||||
"max-params": [
|
||||
"error",
|
||||
12
|
||||
],
|
||||
"no-await-in-loop": "off",
|
||||
"no-else-return": "off",
|
||||
"no-lonely-if": "off",
|
||||
"no-negated-condition": "off",
|
||||
"object-curly-newline": "off",
|
||||
"one-var": [
|
||||
"error",
|
||||
"never"
|
||||
],
|
||||
"unicorn/empty-brace-spaces": "off",
|
||||
"unicorn/no-array-callback-reference": "off",
|
||||
"unicorn/no-length-as-slice-end": "off",
|
||||
"unicorn/no-object-as-default-parameter": "off",
|
||||
"unicorn/prefer-json-parse-buffer": "off",
|
||||
"unicorn/prefer-module": "off",
|
||||
"unicorn/prefer-node-protocol": "off",
|
||||
"unicorn/prefer-switch": "off",
|
||||
"unicorn/prefer-ternary": "off",
|
||||
"unicorn/prevent-abbreviations": [
|
||||
"error",
|
||||
{
|
||||
"replacements": {
|
||||
"arg": false,
|
||||
"args": false,
|
||||
"dir": false,
|
||||
"err": false,
|
||||
"fn": false,
|
||||
"func": false,
|
||||
"i": false,
|
||||
"j": false,
|
||||
"mod": false,
|
||||
"num": false,
|
||||
"pkg": false,
|
||||
"str": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
270
font-size/generate-css.ts
Executable file
270
font-size/generate-css.ts
Executable file
@@ -0,0 +1,270 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import path from 'node:path';
|
||||
import process from 'node:process';
|
||||
import fse from '@zokugun/fs-extra-plus/async';
|
||||
import { err, OK, type Result, stringifyError, xtry } from '@zokugun/xtry';
|
||||
import postcss, { Root, type Rule } from 'postcss';
|
||||
|
||||
type Area = {
|
||||
name: string;
|
||||
defaultSize: number;
|
||||
files: string[];
|
||||
prefixes: string[];
|
||||
};
|
||||
|
||||
const PX_REGEX = /(-?\d+(\.\d+)?)px\b/g;
|
||||
const COEFF_PRECISION = 6;
|
||||
const HEADER = '/*** Generated for Custom Font Size ***/';
|
||||
const ZEROS = ['margin', 'padding'];
|
||||
|
||||
const AREAS: Record<string, Area> = {
|
||||
activitybar: {
|
||||
name: 'activitybar',
|
||||
defaultSize: 16,
|
||||
files: ['src/vs/workbench/browser/parts/activitybar/media/activityaction.css'],
|
||||
prefixes: ['.monaco-workbench .activitybar'],
|
||||
},
|
||||
bottompane: {
|
||||
name: 'bottompane',
|
||||
defaultSize: 13,
|
||||
files: ['src/vs/workbench/browser/parts/panel/media/panelpart.css', 'src/vs/base/browser/ui/actionbar/actionbar.css', 'src/vs/workbench/browser/parts/media/paneCompositePart.css'],
|
||||
prefixes: ['.monaco-workbench .part.panel'],
|
||||
},
|
||||
statusbar: {
|
||||
name: 'statusbar',
|
||||
defaultSize: 12,
|
||||
files: ['src/vs/workbench/browser/parts/statusbar/media/statusbarpart.css'],
|
||||
prefixes: ['.monaco-workbench .part.statusbar'],
|
||||
},
|
||||
sidebar: {
|
||||
name: 'sidebar',
|
||||
defaultSize: 13,
|
||||
files: [
|
||||
'src/vs/base/browser/ui/actionbar/actionbar.css',
|
||||
'src/vs/base/browser/ui/button/button.css',
|
||||
'src/vs/base/browser/ui/inputbox/inputBox.css',
|
||||
'src/vs/workbench/contrib/debug/browser/media/debugToolBar.css',
|
||||
'src/vs/workbench/contrib/debug/browser/media/debugViewlet.css',
|
||||
'src/vs/workbench/contrib/extensions/browser/media/extension.css',
|
||||
'src/vs/workbench/contrib/extensions/browser/media/extensionActions.css',
|
||||
'src/vs/workbench/contrib/search/browser/media/searchview.css',
|
||||
'src/vs/workbench/contrib/scm/browser/media/scm.css',
|
||||
],
|
||||
prefixes: ['.monaco-workbench .part.sidebar', '.monaco-workbench .part.auxiliarybar'],
|
||||
},
|
||||
tabs: {
|
||||
name: 'tabs',
|
||||
defaultSize: 13,
|
||||
files: [
|
||||
'src/vs/workbench/browser/parts/editor/media/editortabscontrol.css',
|
||||
'src/vs/workbench/browser/parts/editor/media/editortitlecontrol.css',
|
||||
'src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css'
|
||||
],
|
||||
prefixes: ['.monaco-workbench .part.editor > .content .editor-group-container > .title.tabs'],
|
||||
},
|
||||
};
|
||||
|
||||
function formatCoefficient(n: number): string { // {{{
|
||||
const fixed = n.toFixed(COEFF_PRECISION);
|
||||
return fixed.replace(/\.?0+$/, '');
|
||||
} // }}}
|
||||
|
||||
function replacePx(area: Area) { // {{{
|
||||
return (match: string, numStr: string): string => {
|
||||
const pxValue = Number.parseFloat(numStr);
|
||||
|
||||
if(pxValue === 1) {
|
||||
return match;
|
||||
}
|
||||
|
||||
const coeff = formatCoefficient(pxValue / area.defaultSize);
|
||||
|
||||
return `calc(var(--vscode-workbench-${area.name}-font-size) * ${coeff})`;
|
||||
};
|
||||
} // }}}
|
||||
|
||||
function transformPxValue(value: string, area: Area): string { // {{{
|
||||
return value.replaceAll(PX_REGEX, replacePx(area));
|
||||
} // }}}
|
||||
|
||||
async function processFile(filePath: string, areas: Area[]): Promise<Result<void, string>> { // {{{
|
||||
const readResult = await fse.readFile(filePath, 'utf8');
|
||||
if(readResult.fails) {
|
||||
return err(stringifyError(readResult.error));
|
||||
}
|
||||
|
||||
const content = extractOriginal(readResult.value);
|
||||
|
||||
const postcssResult = xtry(() => postcss.parse(content, { from: filePath }));
|
||||
if(postcssResult.fails) {
|
||||
return err(`Failed to parse ${filePath}: ${stringifyError(postcssResult.error)}`);
|
||||
}
|
||||
|
||||
const generatedRoot = postcss.root();
|
||||
|
||||
for(const area of areas) {
|
||||
processFileArea(postcssResult.value, generatedRoot, area)
|
||||
}
|
||||
|
||||
if(generatedRoot.nodes && generatedRoot.nodes.length > 0) {
|
||||
const writeResult = await fse.writeFile(filePath, content + `\n\n\n${HEADER}\n\n` + generatedRoot.toString(), 'utf8');
|
||||
if(writeResult.fails) {
|
||||
return err(stringifyError(readResult.error));
|
||||
}
|
||||
|
||||
console.log(`Generated: ${filePath}`);
|
||||
}
|
||||
else {
|
||||
console.log(`No px sizes found in: ${filePath}`);
|
||||
}
|
||||
|
||||
return OK;
|
||||
} // }}}
|
||||
|
||||
function processFileArea(postcssResult: Root, generatedRoot: Root, area: Area): void { // {{{
|
||||
postcssResult.walkRules((rule: Rule) => {
|
||||
const declarationsToAdd: Array<{ prop: string; value: string }> = [];
|
||||
|
||||
rule.walkDecls((declaration) => {
|
||||
if(PX_REGEX.test(declaration.value)) {
|
||||
const newValue = transformPxValue(declaration.value, area);
|
||||
|
||||
declarationsToAdd.push({ prop: declaration.prop, value: newValue });
|
||||
}
|
||||
else if(declaration.value === 'auto' && (declaration.prop === 'height' || declaration.prop === 'width')) {
|
||||
declarationsToAdd.push({ prop: declaration.prop, value: 'auto' });
|
||||
}
|
||||
else if(declaration.value === '0' && ZEROS.includes(declaration.prop)) {
|
||||
declarationsToAdd.push({ prop: declaration.prop, value: '0' });
|
||||
}
|
||||
});
|
||||
|
||||
if(declarationsToAdd.length > 0) {
|
||||
const selectors = (rule.selectors && rule.selectors.length > 0) ? rule.selectors : [rule.selector];
|
||||
const prefixeds: string[] = [];
|
||||
|
||||
for(const prefix of area.prefixes) {
|
||||
const parts = prefix.split(' ');
|
||||
const prefixed = selectors.map((s) => prefixSelector(s, parts)).join(', ');
|
||||
|
||||
prefixeds.push(prefixed);
|
||||
}
|
||||
|
||||
const newRule = postcss.rule({ selector: `${prefixeds.join(', ')}` });
|
||||
|
||||
let length = 0;
|
||||
|
||||
for(const declaration of declarationsToAdd) {
|
||||
if(!declaration.prop.startsWith('border')) {
|
||||
newRule.append({ ...declaration });
|
||||
length += 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(length > 0) {
|
||||
generatedRoot.append(newRule);
|
||||
}
|
||||
}
|
||||
});
|
||||
} // }}}
|
||||
|
||||
function extractOriginal(content: string): string { // {{{
|
||||
const index = content.indexOf(HEADER);
|
||||
|
||||
if(index === -1) {
|
||||
return content;
|
||||
}
|
||||
|
||||
return content.slice(0, Math.max(0, index - 3));
|
||||
} // }}}
|
||||
|
||||
function extractStyle(selector: string): string { // {{{
|
||||
const match = /^(\.[\w-]+)/.exec(selector);
|
||||
|
||||
return match?.[1] ?? '';
|
||||
} // }}}
|
||||
|
||||
function mergeSelector(selectors: string[], prefixes: string[], index: number): void { // {{{
|
||||
if(index >= prefixes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const prefix = prefixes[index];
|
||||
const selector = selectors[index];
|
||||
const style = extractStyle(prefix);
|
||||
|
||||
if(selector === style) {
|
||||
if(prefix.length > style.length) {
|
||||
selectors[index] = prefix;
|
||||
}
|
||||
|
||||
mergeSelector(selectors, prefixes, index + 1);
|
||||
}
|
||||
else if(selector.startsWith(style)) {
|
||||
mergeSelector(selectors, prefixes, index + 1);
|
||||
}
|
||||
else if(index === 0) {
|
||||
selectors.unshift(...prefixes)
|
||||
}
|
||||
else {
|
||||
selectors.splice(index + 1, 0, ...prefixes.slice(index));
|
||||
}
|
||||
} // }}}
|
||||
|
||||
function prefixSelector(selector: string, prefixParts: string[]): string { // {{{
|
||||
const parts = selector.split(' ');
|
||||
|
||||
if(parts[0] === '.mac' || parts[0] === '.linux' || parts[0] === '.windows') {
|
||||
parts[0] = `${prefixParts[0]}${parts[0]}`;
|
||||
|
||||
parts.splice(1, 0, ...prefixParts.slice(1));
|
||||
}
|
||||
else {
|
||||
mergeSelector(parts, prefixParts, 0);
|
||||
}
|
||||
|
||||
return parts.join(' ');
|
||||
} // }}}
|
||||
|
||||
async function main(): Promise<void> { // {{{
|
||||
const name = process.argv[2];
|
||||
const area = AREAS[name];
|
||||
|
||||
if(area) {
|
||||
for(const file of area.files) {
|
||||
const result = await processFile(path.join('..', 'vscode', file), [area]);
|
||||
if(result.fails) {
|
||||
console.error(`Error processing ${file}:`, result.error);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(name === 'all') {
|
||||
const files: Record<string, Area[]> = {};
|
||||
|
||||
for(const area of Object.values(AREAS)) {
|
||||
for(const file of area.files) {
|
||||
if(files[file]) {
|
||||
files[file].push(area)
|
||||
}
|
||||
else {
|
||||
files[file] = [area]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(const [file, areas] of Object.entries(files)) {
|
||||
const result = await processFile(path.join('..', 'vscode', file), areas);
|
||||
if(result.fails) {
|
||||
console.error(`Error processing ${file}:`, result.error);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
console.log(`No area found for ${name}`);
|
||||
console.log(`\nAvailable areas:\n- ${Object.keys(AREAS).join('\n- ')}`);
|
||||
return;
|
||||
}
|
||||
} // }}}
|
||||
|
||||
await main();
|
||||
7391
font-size/package-lock.json
generated
Normal file
7391
font-size/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
30
font-size/package.json
Normal file
30
font-size/package.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "font-size",
|
||||
"description": "",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Baptiste Augrain",
|
||||
"email": "daiyam@zokugun.org"
|
||||
},
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"main": "generate-css.ts",
|
||||
"scripts": {
|
||||
"clean": "rimraf lib",
|
||||
"lint": "xo",
|
||||
"lint:fix": "xo --fix",
|
||||
"prepare": "fixpack || true"
|
||||
},
|
||||
"dependencies": {
|
||||
"@zokugun/fs-extra-plus": "^0.3.3",
|
||||
"@zokugun/xtry": "^0.10.1",
|
||||
"fast-glob": "^3.3.3",
|
||||
"postcss": "^8.5.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.9.0",
|
||||
"fixpack": "^4.0.0",
|
||||
"xo": "0.60.0"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
||||
78
font-size/tsconfig.base.json
Normal file
78
font-size/tsconfig.base.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Language and Environment */
|
||||
"target": "ES2022", /* Specify ECMAScript target version. */
|
||||
"lib": [ /* Specify library files to be included in the compilation. */
|
||||
"ES2022",
|
||||
],
|
||||
|
||||
/* Modules */
|
||||
"module": "node16", /* Specify what module code is generated. */
|
||||
|
||||
/* Basic Options */
|
||||
// "allowJs": false, /* Allow javascript files to be compiled. */
|
||||
// "checkJs": false, /* Report errors in '.js' files. */
|
||||
// "jsx": undefined, /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
|
||||
// "declaration": false, /* Generates corresponding '.d.ts' file. */
|
||||
// "declarationDir": "" /* Specify the output directory for generated declaration files. */
|
||||
// "declarationMap": false, /* Generates a sourcemap for each corresponding '.d.ts' file. */
|
||||
// "outFile": "", /* Specify a file that bundles all outputs into one JavaScript file. */
|
||||
// "outDir": "", /* Specify an output folder for all emitted files. */
|
||||
// "rootDir": "", /* Specify the root directory of input files. */
|
||||
// "incremental": false, /* Save '.tsbuildinfo' files to allow for incremental compilation of projects. */
|
||||
// "composite": false, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
||||
// "tsBuildInfoFile": ".tsbuildinfo", /* Specify the folder for '.tsbuildinfo' incremental compilation files. */
|
||||
// "removeComments": false, /* Disable emitting comments. */
|
||||
// "noEmit": true, /* Disable emitting file from a compilation. */
|
||||
// "importHelpers": false, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
||||
// "downlevelIteration": false, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
||||
// "isolatedModules": false, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"strictNullChecks": true, /* When type checking, take into account null and undefined. */
|
||||
// "strictFunctionTypes": false, /* Enable strict checking of function types. */
|
||||
// "strictBindCallApply": false, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
|
||||
// "strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */
|
||||
// "noImplicitThis": false, /* Enable error reporting when 'this' is given the type 'any'. */
|
||||
"alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
|
||||
|
||||
/* Additional Checks */
|
||||
"noUnusedLocals": true, /* Report errors on unused locals. */
|
||||
// "noUnusedParameters": false, /* Report errors on unused parameters. */
|
||||
"noImplicitAny": false, /* Report error for expressions and declarations with an implied any type.. */
|
||||
"noImplicitReturns": false, /* Report error when not all code paths in function return a value. */
|
||||
// "noFallthroughCasesInSwitch": false, /* Report errors for fallthrough cases in switch statement. */
|
||||
// "noUncheckedIndexedAccess": false, /* Include 'undefined' in index signature results */
|
||||
// "noImplicitOverride": false, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */
|
||||
// "noPropertyAccessFromIndexSignature": false, /* Require undeclared properties from index signatures to use element accesses. */
|
||||
|
||||
/* Module Resolution Options */
|
||||
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
|
||||
// "baseUrl": "", /* Specify the base directory to resolve non-relative module names. */
|
||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
||||
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||
// "preserveSymlinks": false, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
||||
// "allowUmdGlobalAccess": false, /* Allow accessing UMD globals from modules. */
|
||||
// "resolveJsonModule": false, /* Enable importing .json files */
|
||||
|
||||
/* Source Map Options */
|
||||
// "sourceMap": false, /* Create source map files for emitted JavaScript files. */
|
||||
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": false, /* Include sourcemap files inside the emitted JavaScript. */
|
||||
// "inlineSources": false, /* Include source code in the sourcemaps inside the emitted JavaScript. */
|
||||
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": false, /* Enables experimental support for ES7 decorators. */
|
||||
// "emitDecoratorMetadata": false, /* Emit design-type metadata for decorated declarations in source files. */
|
||||
|
||||
/* Advanced Options */
|
||||
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
|
||||
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
||||
},
|
||||
}
|
||||
15
font-size/tsconfig.json
Normal file
15
font-size/tsconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
/* Basic Options */
|
||||
"outDir": ".",
|
||||
"rootDir": ".",
|
||||
"declaration": true,
|
||||
|
||||
/* Module Resolution Options */
|
||||
"resolveJsonModule": true, /* Enable importing .json files */
|
||||
},
|
||||
"files": [
|
||||
"package.json",
|
||||
],
|
||||
}
|
||||
19
get_pr.sh
Executable file
19
get_pr.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# git workaround
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
|
||||
fi
|
||||
|
||||
if [[ -n "${PULL_REQUEST_ID}" ]]; then
|
||||
BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD )
|
||||
|
||||
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
|
||||
git config --global user.name "${GITHUB_USERNAME} CI"
|
||||
git fetch --unshallow
|
||||
git fetch origin "pull/${PULL_REQUEST_ID}/head"
|
||||
git checkout FETCH_HEAD
|
||||
git merge --no-edit "origin/${BRANCH_NAME}"
|
||||
fi
|
||||
75
get_repo.sh
75
get_repo.sh
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2129
|
||||
|
||||
set -e
|
||||
|
||||
@@ -8,58 +9,56 @@ if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
fi
|
||||
|
||||
if [[ -z "${RELEASE_VERSION}" ]]; then
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "insider.json" ]]; then
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
|
||||
else
|
||||
export MS_COMMIT=$(jq -r '.commit' insider.json)
|
||||
export MS_TAG=$(jq -r '.tag' insider.json)
|
||||
fi
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "./upstream/${VSCODE_QUALITY}.json" ]]; then
|
||||
echo "Retrieve lastest version"
|
||||
UPDATE_INFO=$( curl --silent --fail "https://update.code.visualstudio.com/api/update/darwin/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" )
|
||||
else
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
|
||||
echo "Get version from ${VSCODE_QUALITY}.json"
|
||||
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
MS_TAG=$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
fi
|
||||
|
||||
if [[ -z "${MS_COMMIT}" ]]; then
|
||||
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export MS_TAG="${MS_TAG/\-insider/}"
|
||||
MS_TAG="${MS_TAG/\-insider/}"
|
||||
fi
|
||||
fi
|
||||
|
||||
date=$( date +%Y%j )
|
||||
TIME_PATCH=$( printf "%04d" $(($(date +%-j) * 24 + $(date +%-H))) )
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
|
||||
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}-insider"
|
||||
else
|
||||
export RELEASE_VERSION="${MS_TAG}.${date: -5}"
|
||||
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}"
|
||||
fi
|
||||
else
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+-insider$ ]];
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+-insider$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${MS_TAG}" == "$(jq -r '.tag' insider.json)" ]]; then
|
||||
export MS_COMMIT=$(jq -r '.commit' insider.json)
|
||||
else
|
||||
echo "No MS_COMMIT for ${RELEASE_VERSION}"
|
||||
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
echo "Error: Bad RELEASE_VERSION: ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${MS_TAG}" == "$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )" ]]; then
|
||||
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
else
|
||||
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
@@ -72,24 +71,20 @@ git remote add origin https://github.com/Microsoft/vscode.git
|
||||
|
||||
# figure out latest tag by calling MS update API
|
||||
if [[ -z "${MS_TAG}" ]]; then
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/insider/lol )
|
||||
else
|
||||
UPDATE_INFO=$( curl --silent https://update.code.visualstudio.com/api/update/darwin/stable/lol )
|
||||
fi
|
||||
export MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
export MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
UPDATE_INFO=$( curl --silent --fail "https://update.code.visualstudio.com/api/update/darwin/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" )
|
||||
MS_COMMIT=$( echo "${UPDATE_INFO}" | jq -r '.version' )
|
||||
MS_TAG=$( echo "${UPDATE_INFO}" | jq -r '.name' )
|
||||
elif [[ -z "${MS_COMMIT}" ]]; then
|
||||
REFERENCE=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
|
||||
|
||||
if [[ -z "${REFERENCE}" ]]; then
|
||||
echo "The following tag can't be found: ${MS_TAG}"
|
||||
echo "Error: The following tag can't be found: ${MS_TAG}"
|
||||
exit 1
|
||||
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
export MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
export MS_TAG="${BASH_REMATCH[2]}"
|
||||
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-5])$ ]]; then
|
||||
MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
MS_TAG="${BASH_REMATCH[2]}"
|
||||
else
|
||||
echo "The following reference can't be parsed: ${REFERENCE}"
|
||||
echo "Error: The following reference can't be parsed: ${REFERENCE}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -108,3 +103,7 @@ if [[ "${GITHUB_ENV}" ]]; then
|
||||
echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
fi
|
||||
|
||||
export MS_TAG
|
||||
export MS_COMMIT
|
||||
export RELEASE_VERSION
|
||||
|
||||
@@ -1,64 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -e
|
||||
|
||||
# DEBUG
|
||||
# set -o xtrace
|
||||
|
||||
QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export QUALITY="insider"
|
||||
QUALITY="insider"
|
||||
[[ -z "${COLOR}" ]] && COLOR="orange1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -z "${COLOR}" ]] && COLOR="blue1"
|
||||
[[ -z "${QUALITY}" ]] && QUALITY="stable"
|
||||
[[ -z "${SRC_PREFIX}" ]] && SRC_PREFIX=""
|
||||
[[ -z "${VSCODE_PREFIX}" ]] && VSCODE_PREFIX=""
|
||||
|
||||
check_programs() { # {{{
|
||||
for arg in "$@"
|
||||
do
|
||||
if ! command -v "${arg}" >/dev/null 2>&1
|
||||
then
|
||||
for arg in "$@"; do
|
||||
if ! command -v "${arg}" &> /dev/null; then
|
||||
echo "${arg} could not be found"
|
||||
exit
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
} # }}}
|
||||
|
||||
check_programs "icns2png" "composite" "convert" "png2icns" "icotool" "rsvg-convert" "sed"
|
||||
|
||||
. ./utils.sh
|
||||
. "./${VSCODE_PREFIX}utils.sh"
|
||||
|
||||
SRC_PREFIX=""
|
||||
VSCODE_PREFIX=""
|
||||
if ! declare -F load_linux_png &>/dev/null; then
|
||||
load_linux_png() {
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "$1"
|
||||
}
|
||||
fi
|
||||
|
||||
if ! declare -F load_windows_ico &>/dev/null; then
|
||||
load_windows_ico() {
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "$1"
|
||||
}
|
||||
fi
|
||||
|
||||
build_darwin_main() { # {{{
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]; then
|
||||
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/darwin"
|
||||
|
||||
if [[ "$1" == "no-template" ]]; then
|
||||
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_cnl.svg" -o "code_1024.png"
|
||||
else
|
||||
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite "code_logo.png" -gravity center "${VSCODE_PREFIX}icons/template_macos.png" "code_1024.png"
|
||||
fi
|
||||
|
||||
convert "code_1024.png" -resize 512x512 code_512.png
|
||||
convert "code_1024.png" -resize 256x256 code_256.png
|
||||
convert "code_1024.png" -resize 128x128 code_128.png
|
||||
|
||||
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
|
||||
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_1024.png code_512.png code_256.png code_128.png
|
||||
|
||||
rm code_1024.png code_512.png code_256.png code_128.png code_logo.png
|
||||
rm -f code_1024.png code_512.png code_256.png code_128.png code_logo.png
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_darwin_types() { # {{{
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
|
||||
if [[ "$1" == "no-border" ]]; then
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
else
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
|
||||
fi
|
||||
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*
|
||||
do
|
||||
if [ -f "${file}" ]; then
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
name=$(basename "${file}" '.icns')
|
||||
|
||||
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]; then
|
||||
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]]; then
|
||||
icns2png -x -s 512x512 "${file}" -o .
|
||||
|
||||
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
|
||||
composite -blend 100% -geometry +323+365 "${VSCODE_PREFIX}icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
|
||||
composite -geometry +359+374 "code_logo.png" "${name}.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -resize 256x256 "${name}_256.png"
|
||||
@@ -74,158 +98,122 @@ build_darwin_types() { # {{{
|
||||
} # }}}
|
||||
|
||||
build_linux_main() { # {{{
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]; then
|
||||
convert -size 1024x1024 canvas:transparent PNG32:"code_1024.png"
|
||||
rsvg-convert -w 846 -h 824 "icons/${QUALITY}/codium_clt.svg" -o "code_logo.png"
|
||||
composite "code_logo.png" -gravity center -background none "code_1024.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux"
|
||||
|
||||
rm code_1024.png code_logo.png
|
||||
load_linux_png "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
|
||||
fi
|
||||
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]; then
|
||||
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_media() { # {{{
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]; then
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media"
|
||||
|
||||
cp "icons/${QUALITY}/codium_clt.svg" "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
|
||||
gsed -i 's|width="100" height="100"|width="1024" height="1024"|' "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_main() { # {{{
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]; then
|
||||
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_clt.svg" -o "code_logo.png"
|
||||
convert "code_logo.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
|
||||
build_server() { # {{{
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/server"
|
||||
|
||||
rm code_logo.png
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico" ]]; then
|
||||
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico"
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png" ]]; then
|
||||
convert -size "192x192" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png"
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png" ]]; then
|
||||
convert -size "512x512" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_main() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
|
||||
|
||||
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_type() { # {{{
|
||||
local FILE_PATH IMG_SIZE IMG_BG_COLOR LOGO_SIZE GRAVITY
|
||||
|
||||
FILE_PATH="$1"
|
||||
IMG_SIZE="$2"
|
||||
IMG_BG_COLOR="$3"
|
||||
LOGO_SIZE="$4"
|
||||
GRAVITY="$5"
|
||||
|
||||
if [[ ! -f "${FILE_PATH}" ]]; then
|
||||
if [[ "${FILE_PATH##*.}" == "png" ]]; then
|
||||
convert -size "${IMG_SIZE}" "${IMG_BG_COLOR}" PNG32:"${FILE_PATH}"
|
||||
else
|
||||
convert -size "${IMG_SIZE}" "${IMG_BG_COLOR}" "${FILE_PATH}"
|
||||
fi
|
||||
|
||||
rsvg-convert -w "${LOGO_SIZE}" -h "${LOGO_SIZE}" "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
|
||||
if [[ "${GRAVITY}" == "center" ]]; then
|
||||
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
|
||||
else
|
||||
composite -gravity NorthWest -geometry "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
|
||||
fi
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_types() { # {{{
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}"
|
||||
|
||||
rsvg-convert -b "#F5F6F7" -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/win32/*.ico
|
||||
do
|
||||
if [ -f "${file}" ]; then
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/win32/*.ico; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
name=$(basename "${file}" '.ico')
|
||||
|
||||
if [[ ${name} != 'code' ]] && [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]; then
|
||||
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]]; then
|
||||
icotool -x -w 256 "${file}"
|
||||
|
||||
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
|
||||
composite -geometry +150+185 "code_logo.png" "${name}_1_256x256x32.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
|
||||
|
||||
rm "${name}_9_256x256x32.png" "${name}.png"
|
||||
rm "${name}_1_256x256x32.png" "${name}.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" ]; then
|
||||
convert -size 70x70 canvas:transparent PNG32:"${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png"
|
||||
rsvg-convert -w 45 -h 45 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" ]; then
|
||||
convert -size 150x150 canvas:transparent PNG32:"${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png"
|
||||
rsvg-convert -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -geometry +44+25 "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" ]; then
|
||||
convert -size 164x314 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp"
|
||||
rsvg-convert -w 126 -h 126 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" ]; then
|
||||
convert -size 192x386 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp"
|
||||
rsvg-convert -w 147 -h 147 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" ]; then
|
||||
convert -size 246x459 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp"
|
||||
rsvg-convert -w 190 -h 190 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" ]; then
|
||||
convert -size 273x556 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp"
|
||||
rsvg-convert -w 211 -h 211 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" ]; then
|
||||
convert -size 328x604 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp"
|
||||
rsvg-convert -w 255 -h 255 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" ]; then
|
||||
convert -size 355x700 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp"
|
||||
rsvg-convert -w 273 -h 273 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" ]; then
|
||||
convert -size 410x797 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp"
|
||||
rsvg-convert -w 317 -h 317 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" ]; then
|
||||
convert -size 55x55 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp"
|
||||
rsvg-convert -w 44 -h 44 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" ]; then
|
||||
convert -size 64x68 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp"
|
||||
rsvg-convert -w 52 -h 52 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" ]; then
|
||||
convert -size 83x80 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp"
|
||||
rsvg-convert -w 63 -h 63 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" ]; then
|
||||
convert -size 92x97 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp"
|
||||
rsvg-convert -w 76 -h 76 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" ]; then
|
||||
convert -size 110x106 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp"
|
||||
rsvg-convert -w 86 -h 86 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" ]; then
|
||||
convert -size 119x123 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp"
|
||||
rsvg-convert -w 103 -h 103 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" ]; then
|
||||
convert -size 138x140 xc:white "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp"
|
||||
rsvg-convert -w 116 -h 116 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -gravity center "code_logo.png" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" ]; then
|
||||
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp"
|
||||
rsvg-convert -w 50 -h 50 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -geometry +438+6 "code_logo.png" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" ]; then
|
||||
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp"
|
||||
rsvg-convert -w 120 -h 120 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite -geometry +22+152 "code_logo.png" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp"
|
||||
fi
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_70x70.png" "70x70" "canvas:transparent" "45" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/code_150x150.png" "150x150" "canvas:transparent" "64" "+44+25"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-100.bmp" "164x314" "xc:white" "126" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-125.bmp" "192x386" "xc:white" "147" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-150.bmp" "246x459" "xc:white" "190" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-175.bmp" "273x556" "xc:white" "211" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-200.bmp" "328x604" "xc:white" "255" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-225.bmp" "355x700" "xc:white" "273" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-big-250.bmp" "410x797" "xc:white" "317" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-100.bmp" "55x55" "xc:white" "44" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-125.bmp" "64x68" "xc:white" "52" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-150.bmp" "83x80" "xc:white" "63" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-175.bmp" "92x97" "xc:white" "76" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-200.bmp" "110x106" "xc:white" "86" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-225.bmp" "119x123" "xc:white" "103" "center"
|
||||
build_windows_type "${SRC_PREFIX}src/${QUALITY}/resources/win32/inno-small-250.bmp" "138x140" "xc:white" "116" "center"
|
||||
build_windows_type "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-banner.bmp" "493x58" "xc:white" "50" "+438+6"
|
||||
build_windows_type "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}/wix-dialog.bmp" "493x312" "xc:white" "120" "+22+152"
|
||||
|
||||
rm code_logo.png
|
||||
} # }}}
|
||||
|
||||
if [ "${0}" == "${BASH_SOURCE}" ];
|
||||
then
|
||||
if [[ "${0}" == "${BASH_SOURCE[0]}" ]]; then
|
||||
build_darwin_main
|
||||
build_linux_main
|
||||
build_windows_main
|
||||
@@ -234,4 +222,5 @@ then
|
||||
build_windows_types
|
||||
|
||||
build_media
|
||||
build_server
|
||||
fi
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"tag": "1.78.0",
|
||||
"commit": "f31dffc7f9b93a1cdef21243ec30dea7d489a615"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
VERSION=`curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2-`
|
||||
|
||||
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn --cwd remote --frozen-lockfile --check-files
|
||||
|
||||
cd ..
|
||||
|
||||
tar -cf remote-dependencies.tar ./vscode/remote/node_modules
|
||||
3
npmrc
Normal file
3
npmrc
Normal file
@@ -0,0 +1,3 @@
|
||||
build_from_source="true"
|
||||
legacy-peer-deps="true"
|
||||
timeout=180000
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user