Compare commits
1045 Commits
1.0.1-a.13
...
1.7b
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d757c36569 | ||
![]() |
899567b305 | ||
![]() |
59bf54001e | ||
![]() |
c50b9cd555 | ||
![]() |
92fc0f4044 | ||
![]() |
7b90548f88 | ||
![]() |
c0d64f91c0 | ||
![]() |
cd86c556a9 | ||
![]() |
c909421090 | ||
![]() |
b66b46b8a0 | ||
![]() |
d94aff97ea | ||
![]() |
191597e333 | ||
![]() |
270af0ff00 | ||
![]() |
2f1e292e06 | ||
![]() |
dd5461273c | ||
![]() |
818100e3d8 | ||
![]() |
1dbc492aac | ||
![]() |
5c0e99008b | ||
![]() |
60553b996c | ||
![]() |
5886241e8d | ||
![]() |
bdcc36c321 | ||
![]() |
9fd989106d | ||
![]() |
f99f6f4ea7 | ||
![]() |
62df1fbc59 | ||
![]() |
a512948eb0 | ||
![]() |
2aaf3f82e6 | ||
![]() |
af79354d46 | ||
![]() |
f6d3b4d868 | ||
![]() |
20882f65cc | ||
![]() |
922e909a7f | ||
![]() |
98c5f0efb7 | ||
![]() |
509ede1f98 | ||
![]() |
e0ea3b5866 | ||
![]() |
aa67693b8d | ||
![]() |
f70f27fc94 | ||
![]() |
1b2eb4a92d | ||
![]() |
661916eac6 | ||
![]() |
e9c662cbf7 | ||
![]() |
f123e0534b | ||
![]() |
9160111e20 | ||
![]() |
1318341451 | ||
![]() |
e9456ac073 | ||
![]() |
5865b9fd2d | ||
![]() |
e1c3bac43a | ||
![]() |
7e5be9f0b8 | ||
![]() |
e3e7eec78a | ||
![]() |
f5bffa4b24 | ||
![]() |
0978259d2e | ||
![]() |
d6a140ea7d | ||
![]() |
33744a4a73 | ||
![]() |
3bb64df473 | ||
![]() |
9775e1c75d | ||
![]() |
225ab67a50 | ||
![]() |
838569e386 | ||
![]() |
040a8fad5b | ||
![]() |
143218913d | ||
![]() |
2b7580f186 | ||
![]() |
babdc9568f | ||
![]() |
e4103c9d4a | ||
![]() |
dff60ee6ef | ||
![]() |
14664bd38f | ||
![]() |
f61feb54d4 | ||
![]() |
bbeb8aa884 | ||
![]() |
864879eabe | ||
![]() |
d10ce64f2d | ||
![]() |
c93263ccea | ||
![]() |
37092f0359 | ||
![]() |
e26ff172c8 | ||
![]() |
619f979232 | ||
![]() |
1710ebae19 | ||
![]() |
50a48cdf24 | ||
![]() |
997384e832 | ||
![]() |
1f43997088 | ||
![]() |
097404b3d1 | ||
![]() |
8562cfb813 | ||
![]() |
70cd0f90c7 | ||
![]() |
8981160627 | ||
![]() |
e01af2fe97 | ||
![]() |
a5d1537b75 | ||
![]() |
a035b6f1c6 | ||
![]() |
18f84476ef | ||
![]() |
ed7735e3b8 | ||
![]() |
859ff6c088 | ||
![]() |
a3c78e2387 | ||
![]() |
87153390c8 | ||
![]() |
a679bcc669 | ||
![]() |
2d3727670c | ||
![]() |
be4e05f1e5 | ||
![]() |
81b1ee1bf6 | ||
![]() |
eb330dc484 | ||
![]() |
2b0c6c6f73 | ||
![]() |
88c0d896a5 | ||
![]() |
c41f4392ca | ||
![]() |
a40a91c0a7 | ||
![]() |
c613abc5fc | ||
![]() |
66c8d003d9 | ||
![]() |
d294ebb872 | ||
![]() |
6d6f3751e3 | ||
![]() |
62e165b9ac | ||
![]() |
ec5b4abab9 | ||
![]() |
2309e1085f | ||
![]() |
0e5107181c | ||
![]() |
62f4172258 | ||
![]() |
981ac1f23a | ||
![]() |
335fb757ab | ||
![]() |
5ea8fd169c | ||
![]() |
f55c534659 | ||
![]() |
6c9fb9b3bb | ||
![]() |
46c8d6d3e4 | ||
![]() |
301490a341 | ||
![]() |
e9936865d9 | ||
![]() |
c003a2594b | ||
![]() |
a14220c12d | ||
![]() |
b94e4dcff1 | ||
![]() |
604d0da2d5 | ||
![]() |
d7c8bc246b | ||
![]() |
e6b6f0fc7a | ||
![]() |
f7f87131cd | ||
![]() |
59f9b9967e | ||
![]() |
c7a80d5c6e | ||
![]() |
73f932fade | ||
![]() |
2d4f9d4d7b | ||
![]() |
203163de43 | ||
![]() |
98fa56eed5 | ||
![]() |
3ecd929125 | ||
![]() |
5c00c8f1ab | ||
![]() |
5fcb120811 | ||
![]() |
2fc67fae18 | ||
![]() |
591460d2d7 | ||
![]() |
697532d5b4 | ||
![]() |
dce081ce62 | ||
![]() |
6207d5ebf5 | ||
![]() |
dd33e152fc | ||
![]() |
18b64c3999 | ||
![]() |
fbd81f431e | ||
![]() |
a962533301 | ||
![]() |
379ccdf33d | ||
![]() |
70cbc6033b | ||
![]() |
4c5279e5eb | ||
![]() |
3d61e4ed68 | ||
![]() |
0191bf4279 | ||
![]() |
2473c38e57 | ||
![]() |
e868d8a67f | ||
![]() |
cfe3ea22dd | ||
![]() |
34e5e6c151 | ||
![]() |
3aaed105cc | ||
![]() |
d9813e2b03 | ||
![]() |
049a0f8729 | ||
![]() |
e84e774fcf | ||
![]() |
57b16da239 | ||
![]() |
795e71a27a | ||
![]() |
c915fe63b6 | ||
![]() |
a0481737aa | ||
![]() |
16c76723fe | ||
![]() |
d26e51c434 | ||
![]() |
8e953abe94 | ||
![]() |
3b3db4c1d2 | ||
![]() |
81de13e251 | ||
![]() |
8770178c9b | ||
![]() |
1152699be6 | ||
![]() |
3359d3969c | ||
![]() |
99f774a2f8 | ||
![]() |
8da63bc3c6 | ||
![]() |
c2b77d96fb | ||
![]() |
e27f558146 | ||
![]() |
dcfe4464b6 | ||
![]() |
9bfd96a9dd | ||
![]() |
c51b2f3267 | ||
![]() |
344cf8379c | ||
![]() |
cbc342ce1a | ||
![]() |
9b8b9f5e14 | ||
![]() |
cd34782bd5 | ||
![]() |
6c4af27ec6 | ||
![]() |
0333413505 | ||
![]() |
4124a3c8fe | ||
![]() |
6db088328b | ||
![]() |
57b2adb81f | ||
![]() |
f33df61860 | ||
![]() |
ee965e4b74 | ||
![]() |
d0911cd0c7 | ||
![]() |
0b91608bbe | ||
![]() |
e0a5070cdc | ||
![]() |
49ce111c33 | ||
![]() |
fa3d3420f6 | ||
![]() |
b0c2416efb | ||
![]() |
88548eda88 | ||
![]() |
0d3058783e | ||
![]() |
3e34d123c0 | ||
![]() |
c06e51641e | ||
![]() |
89a682fc14 | ||
![]() |
edb6dc9248 | ||
![]() |
501fd5943e | ||
![]() |
8a695bc1e2 | ||
![]() |
d840f0ed94 | ||
![]() |
859fe6cfe5 | ||
![]() |
b9f0d39d1c | ||
![]() |
bb96eb1a8d | ||
![]() |
4e720eb4d2 | ||
![]() |
136a0ecbf7 | ||
![]() |
f20b70c35d | ||
![]() |
75cbb0eeb2 | ||
![]() |
21dde671de | ||
![]() |
22a0884203 | ||
![]() |
76cc2fdb25 | ||
![]() |
b67ff738cb | ||
![]() |
6291e65165 | ||
![]() |
6b2239212c | ||
![]() |
9aa0ac9396 | ||
![]() |
a16040073f | ||
![]() |
f1a16f2eb2 | ||
![]() |
5a9f29bd9d | ||
![]() |
d9417a9aa9 | ||
![]() |
3a2d168c0c | ||
![]() |
4abe2cdb6d | ||
![]() |
83cb4553ad | ||
![]() |
aac415d1fa | ||
![]() |
1e51804b74 | ||
![]() |
d5573be1e9 | ||
![]() |
728cd96cfa | ||
![]() |
bc6c6ce66d | ||
![]() |
20b5ef02b9 | ||
![]() |
a37b6d46e8 | ||
![]() |
4c6b802cb9 | ||
![]() |
6ced8bd137 | ||
![]() |
374eb82d40 | ||
![]() |
9581020e33 | ||
![]() |
476b400315 | ||
![]() |
0e45e0a843 | ||
![]() |
f93f4985b3 | ||
![]() |
67f3da6be2 | ||
![]() |
9ff2cf35c6 | ||
![]() |
86a3a06bb1 | ||
![]() |
f81835cc60 | ||
![]() |
8ab4f8bd93 | ||
![]() |
ae5526c928 | ||
![]() |
335cd41eca | ||
![]() |
4c1fa34f2c | ||
![]() |
f94d3f91cf | ||
![]() |
2b1224b3df | ||
![]() |
5e77f44e05 | ||
![]() |
6e4bd83a69 | ||
![]() |
5de241c2c6 | ||
![]() |
729f61b84c | ||
![]() |
100f7f4147 | ||
![]() |
7dfa6d55ba | ||
![]() |
22515592f0 | ||
![]() |
0a5db20cb8 | ||
![]() |
d91c9dc41f | ||
![]() |
711f189e0e | ||
![]() |
1d579d12d2 | ||
![]() |
624fde5b46 | ||
![]() |
87a3c923a6 | ||
![]() |
c38c82bf6a | ||
![]() |
cd03077b77 | ||
![]() |
871f320de7 | ||
![]() |
3ab089c264 | ||
![]() |
d993ab7b48 | ||
![]() |
b1103ab227 | ||
![]() |
2217959242 | ||
![]() |
d38274acae | ||
![]() |
08e4b07364 | ||
![]() |
8c129ab512 | ||
![]() |
32e9d6fe72 | ||
![]() |
dd8ba803d4 | ||
![]() |
6f90cd5b04 | ||
![]() |
59e6d18c68 | ||
![]() |
81099e6141 | ||
![]() |
9bf6b6ec4a | ||
![]() |
abdbec2523 | ||
![]() |
be62ec31d8 | ||
![]() |
a62bbd1aed | ||
![]() |
d916d8f8df | ||
![]() |
4ce8ae67bc | ||
![]() |
225a18c2ab | ||
![]() |
b23ba4f66d | ||
![]() |
d30b713c74 | ||
![]() |
2dba594954 | ||
![]() |
c419189ffa | ||
![]() |
aa2a2bf9fe | ||
![]() |
1fd231b96c | ||
![]() |
21cd1c4e40 | ||
![]() |
bdf46c5d96 | ||
![]() |
13726e1e8a | ||
![]() |
766c16dc3c | ||
![]() |
cd2df06a10 | ||
![]() |
9a7f2fadf3 | ||
![]() |
2a68f479ed | ||
![]() |
a486bd262b | ||
![]() |
a7247f16f7 | ||
![]() |
39a5483c96 | ||
![]() |
fc12649028 | ||
![]() |
b4b26979de | ||
![]() |
73e9b64926 | ||
![]() |
2307c68ab2 | ||
![]() |
2ce0eae82e | ||
![]() |
45b0e0a7ab | ||
![]() |
317dd69db3 | ||
![]() |
3435f06696 | ||
![]() |
dcfebe6595 | ||
![]() |
b9a759de53 | ||
![]() |
5135d1167c | ||
![]() |
51e30c6a13 | ||
![]() |
b464c0abc5 | ||
![]() |
7469230d59 | ||
![]() |
7ba7e7a319 | ||
![]() |
0dc41eedb0 | ||
![]() |
72a7a6b3c8 | ||
![]() |
533533b639 | ||
![]() |
0cd26250b9 | ||
![]() |
1d545c10c4 | ||
![]() |
d352fab5cd | ||
![]() |
1bb95040ff | ||
![]() |
c0d83be019 | ||
![]() |
1c3f55568b | ||
![]() |
15850f4302 | ||
![]() |
c328eaed0e | ||
![]() |
d42e647d50 | ||
![]() |
0e8f7e6fe3 | ||
![]() |
380f322eda | ||
![]() |
017462c4c1 | ||
![]() |
3e83ebc680 | ||
![]() |
989eca40ec | ||
![]() |
51bd1445a5 | ||
![]() |
0c8378e22a | ||
![]() |
5b219deae2 | ||
![]() |
a311328b38 | ||
![]() |
03fbfc8f7a | ||
![]() |
4bb43cb9b5 | ||
![]() |
e7ee77ad62 | ||
![]() |
d2d8d3d8c2 | ||
![]() |
d3875f5e36 | ||
![]() |
24fec75821 | ||
![]() |
dc4d1c6497 | ||
![]() |
d0fed20d28 | ||
![]() |
1e26314776 | ||
![]() |
448a072e8e | ||
![]() |
0f89478df6 | ||
![]() |
0b96093ae5 | ||
![]() |
52f85f9452 | ||
![]() |
c88dbd3f02 | ||
![]() |
b6b45165ca | ||
![]() |
f53843f9b0 | ||
![]() |
41f94f2be5 | ||
![]() |
23a1bc2595 | ||
![]() |
2afb9b1456 | ||
![]() |
a389621cf1 | ||
![]() |
aa72ea805f | ||
![]() |
a943b4ef6d | ||
![]() |
3642893618 | ||
![]() |
9e5758c905 | ||
![]() |
4f13432df4 | ||
![]() |
8f5d9f2d18 | ||
![]() |
9b2d1f853d | ||
![]() |
f484cb393a | ||
![]() |
a2f29cc817 | ||
![]() |
87976fc845 | ||
![]() |
819c818976 | ||
![]() |
87d6b55022 | ||
![]() |
f086bf9284 | ||
![]() |
144d7276ef | ||
![]() |
c5abd39116 | ||
![]() |
b42adebc39 | ||
![]() |
35c1ee5a79 | ||
![]() |
89c9823b5d | ||
![]() |
da2f87660f | ||
![]() |
19be833058 | ||
![]() |
3c08e16ef2 | ||
![]() |
d2b17fbc6d | ||
![]() |
e526cb462f | ||
![]() |
1237bbebcd | ||
![]() |
65e7a71dff | ||
![]() |
ef28b60bfc | ||
![]() |
f6c9ca0202 | ||
![]() |
403ca48661 | ||
![]() |
3d96420db7 | ||
![]() |
afc011c5c8 | ||
![]() |
681c4a0a0a | ||
![]() |
faac26138a | ||
![]() |
8a799e0971 | ||
![]() |
ec14d1f0fe | ||
![]() |
a6e289c21f | ||
![]() |
7ea0630973 | ||
![]() |
e86a8cee10 | ||
![]() |
1fa90eb865 | ||
![]() |
2cb16a8ad8 | ||
![]() |
f241bfb7b8 | ||
![]() |
075482b417 | ||
![]() |
2a76a50400 | ||
![]() |
9c3c64eb1d | ||
![]() |
bd2c676c31 | ||
![]() |
f6ef53b565 | ||
![]() |
3c496b5694 | ||
![]() |
50320d9d9c | ||
![]() |
d9748cb69b | ||
![]() |
842451c747 | ||
![]() |
cbcb5cfdd6 | ||
![]() |
433df89238 | ||
![]() |
598ede6b37 | ||
![]() |
78b32002d7 | ||
![]() |
579ef3db36 | ||
![]() |
255f8f8fbd | ||
![]() |
e9f03a5455 | ||
![]() |
f2423edb66 | ||
![]() |
44824761f8 | ||
![]() |
93f38ced01 | ||
![]() |
b08c58e6d2 | ||
![]() |
3bd356019f | ||
![]() |
70c0fff557 | ||
![]() |
59a84c3b98 | ||
![]() |
48fdde5640 | ||
![]() |
42175496be | ||
![]() |
dabbd693b6 | ||
![]() |
67556eba74 | ||
![]() |
d6411dc480 | ||
![]() |
86840ee0f5 | ||
![]() |
182de8ef6d | ||
![]() |
c52bffc619 | ||
![]() |
50a432b176 | ||
![]() |
c5a0ec3919 | ||
![]() |
9f18e58c69 | ||
![]() |
20c16af6d3 | ||
![]() |
a1debe45cf | ||
![]() |
80b2079c19 | ||
![]() |
9dfe3dcf79 | ||
![]() |
ea05cf02b4 | ||
![]() |
1b25275333 | ||
![]() |
f90bc04b1a | ||
![]() |
2a06601e3a | ||
![]() |
bcb5e3950b | ||
![]() |
a2478e68c6 | ||
![]() |
dd88086cc7 | ||
![]() |
40af655c39 | ||
![]() |
055decf0cc | ||
![]() |
1f1630dc65 | ||
![]() |
e9cf610299 | ||
![]() |
0f1101bf06 | ||
![]() |
2df51f8b73 | ||
![]() |
e003fa2a66 | ||
![]() |
4470dc1fc9 | ||
![]() |
234346e1d4 | ||
![]() |
65e4586f33 | ||
![]() |
ae4f9a2eb7 | ||
![]() |
a8eff76dd0 | ||
![]() |
afddadbab3 | ||
![]() |
5eb2349a04 | ||
![]() |
e4b7133ec2 | ||
![]() |
a83bfa7a45 | ||
![]() |
5b1d59e38d | ||
![]() |
31ce093a4a | ||
![]() |
e1cc55ff79 | ||
![]() |
076586ded7 | ||
![]() |
c3e30d4d05 | ||
![]() |
dd87882e0f | ||
![]() |
fce8d134a3 | ||
![]() |
7f9fd7ef06 | ||
![]() |
e5c554f947 | ||
![]() |
47922537b7 | ||
![]() |
c5ff01d528 | ||
![]() |
a5830ca15b | ||
![]() |
6d8673724d | ||
![]() |
4e1737c2f5 | ||
![]() |
a7b486de56 | ||
![]() |
1e927834b3 | ||
![]() |
1f2b08f870 | ||
![]() |
067a9a2ade | ||
![]() |
07dbc45d3f | ||
![]() |
482279d7ec | ||
![]() |
7d2a0e6d4e | ||
![]() |
c338a96d8f | ||
![]() |
d2ead4ccbe | ||
![]() |
23c5a0d8eb | ||
![]() |
b555b60b75 | ||
![]() |
3a04b465b1 | ||
![]() |
4ce646facc | ||
![]() |
c33deb446e | ||
![]() |
3f5ee4c6fb | ||
![]() |
7a0fcc3f35 | ||
![]() |
ae5c164179 | ||
![]() |
8f2429e61c | ||
![]() |
c0515c961e | ||
![]() |
47f66049d7 | ||
![]() |
929e7cbaab | ||
![]() |
461043a985 | ||
![]() |
c489a0b7cc | ||
![]() |
e0b125d762 | ||
![]() |
36dad75750 | ||
![]() |
237acbd9c0 | ||
![]() |
a0c017a4dc | ||
![]() |
e18e0dccc6 | ||
![]() |
9bb1ef14be | ||
![]() |
4e9e2db90c | ||
![]() |
4fe98931af | ||
![]() |
431de0dc25 | ||
![]() |
16d32c073d | ||
![]() |
7446f0f809 | ||
![]() |
b8bacef844 | ||
![]() |
09dbc30ace | ||
![]() |
77f26aafda | ||
![]() |
1ab4af5e9d | ||
![]() |
29e7df3575 | ||
![]() |
78edbd3830 | ||
![]() |
9f963a2360 | ||
![]() |
7bb91088f1 | ||
![]() |
df727b774c | ||
![]() |
1f99e2547a | ||
![]() |
bb8bab1a3a | ||
![]() |
3d0a4c9137 | ||
![]() |
108e4a603e | ||
![]() |
a84ec393dd | ||
![]() |
c5adf540a6 | ||
![]() |
947251534f | ||
![]() |
05a2a5d8cc | ||
![]() |
9f2fb18473 | ||
![]() |
0bd34061b9 | ||
![]() |
e1b43e71bb | ||
![]() |
f06ae08a10 | ||
![]() |
dc2cb4d91c | ||
![]() |
848091097e | ||
![]() |
a1cef01c22 | ||
![]() |
d43bbbd5ba | ||
![]() |
6c67aee8a4 | ||
![]() |
653875c02e | ||
![]() |
58b2ac9987 | ||
![]() |
c111d32934 | ||
![]() |
c5ed682c70 | ||
![]() |
c5ed5baf97 | ||
![]() |
c683b60571 | ||
![]() |
6a20805772 | ||
![]() |
de24cbd70b | ||
![]() |
dbdf154e42 | ||
![]() |
a5b67a4207 | ||
![]() |
8c983e1849 | ||
![]() |
d83f41eaf2 | ||
![]() |
584cf7fa57 | ||
![]() |
c5cbfb1a3c | ||
![]() |
0e09b2b12a | ||
![]() |
d3421270b1 | ||
![]() |
6c330fe4d2 | ||
![]() |
e31e18b3f3 | ||
![]() |
2a41e8c8b0 | ||
![]() |
7428568279 | ||
![]() |
df4ea8794f | ||
![]() |
a84af82740 | ||
![]() |
82b1dbb01b | ||
![]() |
8f9d2df8db | ||
![]() |
73c7ecf716 | ||
![]() |
8842f099ed | ||
![]() |
6ea43b65d3 | ||
![]() |
c077834553 | ||
![]() |
a35c0fc1a7 | ||
![]() |
37f5756ddb | ||
![]() |
701094596f | ||
![]() |
aa8165d81a | ||
![]() |
a9fb598134 | ||
![]() |
c67fc71069 | ||
![]() |
85028b060c | ||
![]() |
b652840090 | ||
![]() |
52a607d0fb | ||
![]() |
e5904584e7 | ||
![]() |
c45d415579 | ||
![]() |
92790287e1 | ||
![]() |
28e8caea54 | ||
![]() |
735d6bf85c | ||
![]() |
3a9a8d4e5b | ||
![]() |
37ff909c37 | ||
![]() |
009528255e | ||
![]() |
474af8b29b | ||
![]() |
1ea268df71 | ||
![]() |
30183d11dc | ||
![]() |
be16260c3c | ||
![]() |
f44544be0e | ||
![]() |
13ccd086b4 | ||
![]() |
7371d42e97 | ||
![]() |
3ea13893dd | ||
![]() |
188bb85fe8 | ||
![]() |
e7aab960ff | ||
![]() |
466b130ca5 | ||
![]() |
df352ec926 | ||
![]() |
37b0a87aae | ||
![]() |
f13a9a260e | ||
![]() |
0fc4914500 | ||
![]() |
657cfb6512 | ||
![]() |
15ff4f12ac | ||
![]() |
702e8543b8 | ||
![]() |
58ec0d0cdd | ||
![]() |
b9f7e592ab | ||
![]() |
900313bbef | ||
![]() |
20fa1de3ef | ||
![]() |
ada3aa410a | ||
![]() |
416472e515 | ||
![]() |
cb88b3355b | ||
![]() |
4bbc20e24b | ||
![]() |
34d93ac968 | ||
![]() |
ba984572c8 | ||
![]() |
eb1e00ef7b | ||
![]() |
5aecff2f1a | ||
![]() |
35f9d6f72a | ||
![]() |
6bc6b3e772 | ||
![]() |
74532116ab | ||
![]() |
5b1521672f | ||
![]() |
c676ed980d | ||
![]() |
0168f549d4 | ||
![]() |
703903faf4 | ||
![]() |
220f96ecb4 | ||
![]() |
8ebe7e74e8 | ||
![]() |
7e9153171a | ||
![]() |
6e930aeaa9 | ||
![]() |
f91e12d593 | ||
![]() |
484b828f9d | ||
![]() |
2169a930d2 | ||
![]() |
45b3898683 | ||
![]() |
0a58aff795 | ||
![]() |
7f1a817749 | ||
![]() |
5f512db55f | ||
![]() |
acdca8320b | ||
![]() |
857db43428 | ||
![]() |
12aa51c551 | ||
![]() |
f755ed9710 | ||
![]() |
53a6b8178a | ||
![]() |
359474e1ca | ||
![]() |
e7ed402b64 | ||
![]() |
13e431a6ac | ||
![]() |
4266cfdad6 | ||
![]() |
8128565367 | ||
![]() |
14f5c79229 | ||
![]() |
1bc17b1cb1 | ||
![]() |
42f8744594 | ||
![]() |
8d3e33e343 | ||
![]() |
f5fd5a22e9 | ||
![]() |
f6cbe1c4bc | ||
![]() |
3811d7739d | ||
![]() |
6902d5fb02 | ||
![]() |
df801995ff | ||
![]() |
c1a9034f3f | ||
![]() |
1a95a6c028 | ||
![]() |
54cb67b316 | ||
![]() |
802a82f335 | ||
![]() |
7112f77b7c | ||
![]() |
fad68a1bf0 | ||
![]() |
3b3dc28d42 | ||
![]() |
f06317f3d0 | ||
![]() |
97c18ef67c | ||
![]() |
92e1e08e1c | ||
![]() |
139ab630e0 | ||
![]() |
1440534513 | ||
![]() |
c993563185 | ||
![]() |
f029d50029 | ||
![]() |
067afaceda | ||
![]() |
52b1176464 | ||
![]() |
4f8cd7fe88 | ||
![]() |
eb781c54f8 | ||
![]() |
b988241b8b | ||
![]() |
b4d69de796 | ||
![]() |
0fde081db5 | ||
![]() |
c8e44703d5 | ||
![]() |
4b6f5282b4 | ||
![]() |
c66899741a | ||
![]() |
8b6cdd8ab8 | ||
![]() |
2836484d12 | ||
![]() |
a869e7a3bd | ||
![]() |
90fe7d8e03 | ||
![]() |
0fbd579cbb | ||
![]() |
0b42ee83bb | ||
![]() |
be92638cf2 | ||
![]() |
3e560ce43d | ||
![]() |
273d477938 | ||
![]() |
12afbcd03d | ||
![]() |
6d41232a3e | ||
![]() |
4561112fe1 | ||
![]() |
cbcac452c0 | ||
![]() |
c0da03cfe8 | ||
![]() |
98456b8dca | ||
![]() |
a02ae261cf | ||
![]() |
6ee110b88d | ||
![]() |
0d2a95190c | ||
![]() |
ca9b14696c | ||
![]() |
2bf6ff5604 | ||
![]() |
f35cc90ea4 | ||
![]() |
63a2ccf3da | ||
![]() |
eb72f81bf7 | ||
![]() |
66254e79d3 | ||
![]() |
a8831bfa73 | ||
![]() |
ec4e44fcf2 | ||
![]() |
583d55298e | ||
![]() |
83859c1925 | ||
![]() |
5664b6a271 | ||
![]() |
53c3deda16 | ||
![]() |
d28fe8730d | ||
![]() |
92de4022cb | ||
![]() |
c3ae2467ae | ||
![]() |
94445283ac | ||
![]() |
5a5440813e | ||
![]() |
32d89fe611 | ||
![]() |
26ccdf21f9 | ||
![]() |
fb2241339d | ||
![]() |
99b2babad4 | ||
![]() |
735f392663 | ||
![]() |
4fddfe4f6b | ||
![]() |
16080cf46d | ||
![]() |
59aa071095 | ||
![]() |
5c7e23252b | ||
![]() |
240b70ad4b | ||
![]() |
1422b3393f | ||
![]() |
c0df38c23d | ||
![]() |
c146fea519 | ||
![]() |
6f8a6e33fc | ||
![]() |
7b976c39e6 | ||
![]() |
d9b28a79f1 | ||
![]() |
78d10b4c1b | ||
![]() |
5497016015 | ||
![]() |
302a580847 | ||
![]() |
62ca724415 | ||
![]() |
a70dfce490 | ||
![]() |
cb6f3f9195 | ||
![]() |
a666e6c39b | ||
![]() |
5606dc505e | ||
![]() |
3bf7a477a6 | ||
![]() |
2a45071501 | ||
![]() |
15617953ab | ||
![]() |
99cf659742 | ||
![]() |
ab17f50339 | ||
![]() |
d06b0c0b69 | ||
![]() |
351b942860 | ||
![]() |
272ac594a8 | ||
![]() |
365c3a27e8 | ||
![]() |
cc5f813f5e | ||
![]() |
87cf878860 | ||
![]() |
ba1ac3434e | ||
![]() |
f3a78ec059 | ||
![]() |
95884e1215 | ||
![]() |
d427d8df2d | ||
![]() |
a98565285b | ||
![]() |
01be9b0132 | ||
![]() |
49059236cd | ||
![]() |
529f6f94a3 | ||
![]() |
eacac9f071 | ||
![]() |
f13c15365f | ||
![]() |
ca035e419a | ||
![]() |
699641977e | ||
![]() |
aea3734ca8 | ||
![]() |
5ca286db5b | ||
![]() |
f4b9d16497 | ||
![]() |
0578196839 | ||
![]() |
f49fdbe886 | ||
![]() |
0d460e32de | ||
![]() |
2ee8b3c111 | ||
![]() |
e1379e5cf3 | ||
![]() |
b14b84f58b | ||
![]() |
444c9138e0 | ||
![]() |
83e40daec1 | ||
![]() |
dd612bbc91 | ||
![]() |
3f58521db2 | ||
![]() |
065834567a | ||
![]() |
f23b4fbf59 | ||
![]() |
426a8e5b61 | ||
![]() |
6fcb95b9e1 | ||
![]() |
50c95b4291 | ||
![]() |
f24adec51f | ||
![]() |
cfe354a35b | ||
![]() |
20743f2b51 | ||
![]() |
4c3d6a72a1 | ||
![]() |
1cd3f5c615 | ||
![]() |
9abae121fc | ||
![]() |
0d582fde46 | ||
![]() |
ecdd92f08e | ||
![]() |
e56cd8f3bd | ||
![]() |
14c8079353 | ||
![]() |
878df5afe4 | ||
![]() |
7e4b49634f | ||
![]() |
61cb8cb0b2 | ||
![]() |
04fbca7fe5 | ||
![]() |
54a2c660ae | ||
![]() |
113a349b56 | ||
![]() |
55d5859382 | ||
![]() |
791f74286d | ||
![]() |
aba6cf50e1 | ||
![]() |
02ba1f7230 | ||
![]() |
e04486564d | ||
![]() |
b140f6dc9a | ||
![]() |
ea66bc7f40 | ||
![]() |
0554dceed7 | ||
![]() |
86c4ce6d9f | ||
![]() |
0fba5dc75c | ||
![]() |
c39253454a | ||
![]() |
bc54087161 | ||
![]() |
2393ff7c4c | ||
![]() |
6582e9c718 | ||
![]() |
10b9f03410 | ||
![]() |
6987d75bb3 | ||
![]() |
4640525785 | ||
![]() |
7c7c6c349c | ||
![]() |
a2d013cd51 | ||
![]() |
6de89958ad | ||
![]() |
01c8032f20 | ||
![]() |
245f477760 | ||
![]() |
47a8e8e9fd | ||
![]() |
30b14a619d | ||
![]() |
f3cf51f7ac | ||
![]() |
2f79e110c4 | ||
![]() |
38e09d84fd | ||
![]() |
bc49f3813f | ||
![]() |
37848357b3 | ||
![]() |
de81eeb2b2 | ||
![]() |
9b15886310 | ||
![]() |
aac1b25a2e | ||
![]() |
abb338fea3 | ||
![]() |
b094d8322a | ||
![]() |
721a8cf6e3 | ||
![]() |
1049277e17 | ||
![]() |
44a4ce44d4 | ||
![]() |
7e9f900f35 | ||
![]() |
ec681b841e | ||
![]() |
a4002a49cc | ||
![]() |
032954be2b | ||
![]() |
2e7840bfcd | ||
![]() |
b0afe6c828 | ||
![]() |
bf281c2e36 | ||
![]() |
95ff7afa98 | ||
![]() |
da30d196da | ||
![]() |
dd10987e3b | ||
![]() |
1b9ada13a2 | ||
![]() |
66b215b44b | ||
![]() |
88b1ea9d3b | ||
![]() |
597f7dbeb8 | ||
![]() |
62d5684435 | ||
![]() |
499781baf1 | ||
![]() |
1da6210617 | ||
![]() |
057d258660 | ||
![]() |
ec433fa852 | ||
![]() |
6185f421b8 | ||
![]() |
ab7ae3f89a | ||
![]() |
7048b94cc2 | ||
![]() |
c8c11b31c8 | ||
![]() |
6dd732e1c2 | ||
![]() |
693963b072 | ||
![]() |
bc7d0c7d71 | ||
![]() |
07ee4d5915 | ||
![]() |
bc45092e03 | ||
![]() |
4b6068e13b | ||
![]() |
a7db756c76 | ||
![]() |
9d328b3aff | ||
![]() |
14211536d8 | ||
![]() |
9a7351b1f9 | ||
![]() |
b323333bd1 | ||
![]() |
8724d6f836 | ||
![]() |
18ddbf986c | ||
![]() |
dc55574100 | ||
![]() |
98cce77e1d | ||
![]() |
38898ab45e | ||
![]() |
40267f32e5 | ||
![]() |
3277e06740 | ||
![]() |
c557a2daf0 | ||
![]() |
2798076bb1 | ||
![]() |
0e02cb14ec | ||
![]() |
9443169283 | ||
![]() |
259b25ab68 | ||
![]() |
c8e363d4f3 | ||
![]() |
8ecc8b2e74 | ||
![]() |
62d763e65a | ||
![]() |
d54a56e11b | ||
![]() |
73b24aa5ae | ||
![]() |
110279cf4c | ||
![]() |
ddc4341707 | ||
![]() |
47fdeada01 | ||
![]() |
c3fc7d792e | ||
![]() |
33ac29f269 | ||
![]() |
1c7c6b2a0f | ||
![]() |
5ab9ee7c34 | ||
![]() |
056de6fc13 | ||
![]() |
ded9ee3251 | ||
![]() |
dc4f8c6c98 | ||
![]() |
282c3fab8c | ||
![]() |
63a808b306 | ||
![]() |
ca7622027d | ||
![]() |
f923078445 | ||
![]() |
f81150ea31 | ||
![]() |
0d057ab60b | ||
![]() |
c5a7879c55 | ||
![]() |
d24a9a2583 | ||
![]() |
6a7ce1639a | ||
![]() |
e75f6f85e7 | ||
![]() |
9d4a8702cb | ||
![]() |
7a91ea7107 | ||
![]() |
0e818dfdc8 | ||
![]() |
2228f00c0a | ||
![]() |
e2e46d675e | ||
![]() |
14b8a1d8a2 | ||
![]() |
7ab07c69aa | ||
![]() |
e9e2e9a711 | ||
![]() |
84de31e85b | ||
![]() |
31cc0ce7a8 | ||
![]() |
5c7dc3097a | ||
![]() |
3a09999cca | ||
![]() |
cf1e468395 | ||
![]() |
871e529bf2 | ||
![]() |
5e9ccd440e | ||
![]() |
657bc32e9b | ||
![]() |
d7a48bd855 | ||
![]() |
d2746689f9 | ||
![]() |
f093228f71 | ||
![]() |
f3e054d15e | ||
![]() |
86a3ad4b1f | ||
![]() |
aa5a768ef0 | ||
![]() |
b6cb37db43 | ||
![]() |
3ca25590c7 | ||
![]() |
c3b902ae65 | ||
![]() |
014602266b | ||
![]() |
696a2148f0 | ||
![]() |
e086cf56fc | ||
![]() |
6d5dcbe89f | ||
![]() |
54f5042c3c | ||
![]() |
927f38e999 | ||
![]() |
638ec9c2ea | ||
![]() |
27c5119664 | ||
![]() |
8542000540 | ||
![]() |
9c5c53f4ae | ||
![]() |
a2ca9361e1 | ||
![]() |
9042baf13d | ||
![]() |
957cff3447 | ||
![]() |
fbd6d11a5c | ||
![]() |
6ccb766b2e | ||
![]() |
df7be136f8 | ||
![]() |
3abbb08e31 | ||
![]() |
715b6df2fb | ||
![]() |
a64fe45175 | ||
![]() |
f0690d0ac5 | ||
![]() |
3049bc8215 | ||
![]() |
4f9b59ed6d | ||
![]() |
d05e849299 | ||
![]() |
76f06e120c | ||
![]() |
fdf83eaef8 | ||
![]() |
b214364ee9 | ||
![]() |
adfcaa2f09 | ||
![]() |
bd3c8d19fa | ||
![]() |
7ae2d6d5bb | ||
![]() |
44e5a98188 | ||
![]() |
093722c7d6 | ||
![]() |
ca2dd38f9b | ||
![]() |
bf0342eb06 | ||
![]() |
cf7af8e3aa | ||
![]() |
19f8f58618 | ||
![]() |
649d82425a | ||
![]() |
1f45db0fac | ||
![]() |
49ceb6f6e5 | ||
![]() |
9d0eb9fb08 | ||
![]() |
ec65a69496 | ||
![]() |
f498a64413 | ||
![]() |
4b993c932e | ||
![]() |
5aed1d0e97 | ||
![]() |
4f70e6b881 | ||
![]() |
e3751f5a57 | ||
![]() |
46d9280490 | ||
![]() |
40c0a9bf51 | ||
![]() |
0ca828325d | ||
![]() |
aa74a68ca8 | ||
![]() |
419922a2aa | ||
![]() |
e970e6cbc5 | ||
![]() |
90b04ddd9b | ||
![]() |
96ce701f64 | ||
![]() |
b506c94d9a | ||
![]() |
d4962685d6 | ||
![]() |
24a6013195 | ||
![]() |
de3962412f | ||
![]() |
0603c57a60 | ||
![]() |
71464e6914 | ||
![]() |
2a96fd466f | ||
![]() |
d6e27ee9b5 | ||
![]() |
a21511b683 | ||
![]() |
984fa08f14 | ||
![]() |
fbc2f999bf | ||
![]() |
86cb96cd21 | ||
![]() |
9bc955a5d4 | ||
![]() |
49dc6ac30b | ||
![]() |
5b93ce3481 | ||
![]() |
369adbdfe9 | ||
![]() |
c5b6376980 | ||
![]() |
64c7bc78af | ||
![]() |
3a4873aa1b | ||
![]() |
e0a3b2d8c3 | ||
![]() |
10f6e4e751 | ||
![]() |
3a374dcdba | ||
![]() |
b6f4611994 | ||
![]() |
b58f7a0c4d | ||
![]() |
3b482b265b | ||
![]() |
f94b51e410 | ||
![]() |
6185336c3a | ||
![]() |
bd8829a432 | ||
![]() |
89d8d11db3 | ||
![]() |
644baca439 | ||
![]() |
3cc111e5dd | ||
![]() |
baa614c094 | ||
![]() |
95cb9460d4 | ||
![]() |
e433c5160a | ||
![]() |
440b7171b0 | ||
![]() |
cfd2e57950 | ||
![]() |
a5d4855530 | ||
![]() |
448a034766 | ||
![]() |
d228a96944 | ||
![]() |
51a3fb98e1 | ||
![]() |
04dd345ef4 | ||
![]() |
3ba221831d | ||
![]() |
b30a65015d | ||
![]() |
0ea71db628 | ||
![]() |
b64d007315 | ||
![]() |
88f954fc28 | ||
![]() |
f6acb174a4 | ||
![]() |
b8a927b163 | ||
![]() |
4e93b06772 | ||
![]() |
65934f5e00 | ||
![]() |
fb89aab252 | ||
![]() |
db9a0edce5 | ||
![]() |
a85baa5cca | ||
![]() |
7d6125c367 | ||
![]() |
2caeea2a14 | ||
![]() |
c3e2447924 | ||
![]() |
f12d888e42 | ||
![]() |
f92966d57a | ||
![]() |
245c75ab2c | ||
![]() |
ef0b6d947e | ||
![]() |
bd511d17e9 | ||
![]() |
b0b73b5d97 | ||
![]() |
a8d2773f5d | ||
![]() |
9749a79f7f | ||
![]() |
6a7cbf1a47 | ||
![]() |
ff1d1474d4 | ||
![]() |
2b18df8398 | ||
![]() |
d978d35533 | ||
![]() |
10cd70e858 | ||
![]() |
0552c2f245 | ||
![]() |
a08df8f9ef | ||
![]() |
1a906b746e | ||
![]() |
c916732f4e | ||
![]() |
22df6d5638 | ||
![]() |
4783f264df | ||
![]() |
64c3ff4573 | ||
![]() |
9c105c988c | ||
![]() |
c7bf92f20b | ||
![]() |
15548d9bb2 | ||
![]() |
441379b6e8 | ||
![]() |
6e5d117720 | ||
![]() |
c1aea93389 | ||
![]() |
e28af61ac2 | ||
![]() |
315180816d | ||
![]() |
fc94c9602b | ||
![]() |
25c8796888 |
5
.dockerignore
Normal file
@@ -0,0 +1,5 @@
|
||||
node_modules
|
||||
.git
|
||||
.DS_Store
|
||||
*.log
|
||||
engine
|
12
.editorconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
12
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -4,12 +4,13 @@ body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for filing a bug report.
|
||||
Thank you for filing a bug report!
|
||||
|
||||
## Important
|
||||
- Please search existing issues to avoid creating duplicates.
|
||||
- For enhancement requests, please use GitHub Discussions.
|
||||
- Please fill out the template below to the best of your ability.
|
||||
- Please describe the issue as much as possible and provide steps to reproduce it along with visual aids if possible.
|
||||
- type: checkboxes
|
||||
id: captchas
|
||||
attributes:
|
||||
@@ -38,7 +39,7 @@ body:
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of our software are you running? Please DO NOT report Classic bugs.
|
||||
description: What version of our software are you running? Please do not use "latest" or "newest" as version numbers. Go to `Help -> About Zen` to find the version number.
|
||||
placeholder: 1.0.0
|
||||
validations:
|
||||
required: true
|
||||
@@ -48,15 +49,18 @@ body:
|
||||
label: What platform are you seeing the problem on?
|
||||
multiple: true
|
||||
options:
|
||||
- Linux
|
||||
- Linux (AppImage)
|
||||
- Linux (Flatpak)
|
||||
- Linux (Tarball)
|
||||
- macOS - aarch64
|
||||
- macOS - Intel
|
||||
- Windows
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
label: Relevant log output if applicable
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Feature Request
|
||||
url: https://github.com/zen-browser/desktop/discussions
|
||||
about: Please use GitHub discussions for feature requests.
|
||||
|
407
.github/workflows/build.yml
vendored
@@ -16,10 +16,10 @@ on:
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'alpha'
|
||||
default: 'release'
|
||||
type: 'choice'
|
||||
options:
|
||||
- 'alpha'
|
||||
- 'release'
|
||||
- 'twilight'
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -36,7 +36,7 @@ on:
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'alpha'
|
||||
default: 'release'
|
||||
type: 'string'
|
||||
|
||||
jobs:
|
||||
@@ -54,32 +54,56 @@ jobs:
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
start-self-host:
|
||||
runs-on: ubuntu-latest
|
||||
needs: debug-inputs
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
sudo ./aws/install --update
|
||||
|
||||
- name: Start self-hosted runner
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Starting self-hosted runner"
|
||||
echo "${{ secrets.SELF_HOSTED_RUNNER_START_SCRIPT }}" | base64 -d > start.sh
|
||||
sudo chmod +x start.sh
|
||||
bash ./start.sh
|
||||
|
||||
- name: Remove self-hosted runner script
|
||||
if: always() && ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Removing self-hosted runner script"
|
||||
rm start.sh || true
|
||||
|
||||
check-build-is-correct:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [debug-inputs]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check if correct branch
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
echo "Checking if we are on the correct branch"
|
||||
git branch
|
||||
git status
|
||||
git branch --show-current
|
||||
branch="${{ inputs.update_branch }}"
|
||||
if [[ $branch == "alpha" ]]; then
|
||||
branch="stable"
|
||||
elif [[ $branch == "twilight" ]]; then
|
||||
if [[ $branch == "twilight" ]]; then
|
||||
branch="dev"
|
||||
elif [[ $branch == "release" ]]; then
|
||||
branch="stable"
|
||||
fi
|
||||
if [[ $(git branch --show-current) != $branch ]]; then
|
||||
echo ">>> Branch mismatch"
|
||||
exit 1
|
||||
# exit 1
|
||||
else
|
||||
echo ">>> Branch matches"
|
||||
fi
|
||||
@@ -95,17 +119,18 @@ jobs:
|
||||
version: ${{ steps.data.outputs.version }}
|
||||
build_time: ${{ steps.data.outputs.buildtime }}
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
@@ -115,14 +140,15 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Setup Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Bump version
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'alpha' }}
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||
|
||||
@@ -145,28 +171,35 @@ jobs:
|
||||
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
||||
echo "buildtime=$(date +"%H:%M:%S")" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
if: ${{ inputs.update_version }}
|
||||
with:
|
||||
commit_message: 🔖 Update version to ${{ steps.data.outputs.version }}
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
|
||||
lint:
|
||||
uses: ./.github/workflows/code-linter.yml
|
||||
needs: [build-data]
|
||||
name: Lint
|
||||
|
||||
check-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-data]
|
||||
needs: [build-data, lint]
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
@@ -176,15 +209,16 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Setup surfer
|
||||
- name: Setup Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Activate surfer CLI
|
||||
- name: Activate Surfer CLI
|
||||
run: |
|
||||
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
||||
echo "There's a bug in the Surfer CLI, we run this so that Surfer sets everything up correctly"
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Check version
|
||||
@@ -206,22 +240,23 @@ jobs:
|
||||
needs: [build-data, check-release]
|
||||
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
@@ -231,12 +266,13 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Download firefox source and dependancies
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download --verbose
|
||||
|
||||
- name: Import
|
||||
@@ -245,15 +281,15 @@ jobs:
|
||||
- name: Compress
|
||||
run: |
|
||||
cd engine
|
||||
# -h is used to dereference symlinks
|
||||
tar --use-compress-program=zstd -hcf ../zen.source.tar.gz *
|
||||
tar --use-compress-program=zstd -hcf ../zen.source.tar.zst *
|
||||
cd ..
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.source.tar.gz
|
||||
path: ./zen.source.tar.gz
|
||||
retention-days: 5
|
||||
name: zen.source.tar.zst
|
||||
path: ./zen.source.tar.zst
|
||||
|
||||
windows-step-1:
|
||||
name: Windows build step 1 (PGO build)
|
||||
@@ -265,7 +301,7 @@ jobs:
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: true
|
||||
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
profile-data-path-archive: zen-windows-profile-data-and-jarlog.zip
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
windows-step-2:
|
||||
@@ -286,7 +322,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data, windows-step-2]
|
||||
needs: [build-data, windows-step-2, start-self-host]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: false
|
||||
@@ -298,7 +334,7 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
needs: [build-data, start-self-host]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
@@ -315,35 +351,36 @@ jobs:
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
appimage:
|
||||
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: AppImage build - Linux ${{ matrix.arch }}
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
arch: [x86_64, aarch64]
|
||||
needs: [linux]
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
npm install -g pnpm
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libfuse2 desktop-file-utils appstream
|
||||
|
||||
- name: Download linux build
|
||||
- name: Download Linux build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
name: zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
|
||||
- name: Execute AppImage build
|
||||
run: |
|
||||
@@ -354,7 +391,7 @@ jobs:
|
||||
|
||||
if [ "${{ inputs.update_branch }}" = "twilight" ]; then
|
||||
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen-alpha/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||
fi
|
||||
|
||||
APPDIR=AppDir
|
||||
@@ -367,49 +404,78 @@ jobs:
|
||||
ls -al
|
||||
find .
|
||||
ls -al "$APPDIR"
|
||||
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
|
||||
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync" \
|
||||
"$APPDIR" zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
ARCH=${{ matrix.arch }} ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
|
||||
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.arch }}.AppImage.zsync" \
|
||||
"$APPDIR" zen-${{ matrix.arch }}.AppImage
|
||||
mkdir dist
|
||||
mv zen*AppImage* dist/.
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
retention-days: 5
|
||||
name: zen-${{ matrix.arch }}.AppImage
|
||||
path: ./dist/zen-${{ matrix.arch }}.AppImage
|
||||
|
||||
- name: Upload artifact (ZSync)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||
retention-days: 5
|
||||
name: zen-${{ matrix.arch }}.AppImage.zsync
|
||||
path: ./dist/zen-${{ matrix.arch }}.AppImage.zsync
|
||||
|
||||
stop-self-hosted:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [windows-step-3, linux]
|
||||
if: always()
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
sudo ./aws/install --update
|
||||
|
||||
- name: Stop self-hosted runner
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Stopping self-hosted runner"
|
||||
echo "${{ secrets.SELF_HOSTED_RUNNER_STOP_SCRIPT }}" | base64 -d > stop.sh
|
||||
sudo chmod +x stop.sh
|
||||
bash ./stop.sh > /dev/null 2>&1 &
|
||||
|
||||
- name: Remove self-hosted runner script
|
||||
if: always() && ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
echo "Removing self-hosted runner script"
|
||||
rm stop.sh || true
|
||||
|
||||
release:
|
||||
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
|
||||
permissions: write-all
|
||||
name: Release
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source, lint, stop-self-hosted]
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: ${{ inputs.update_branch == 'alpha' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
name: ${{ inputs.update_branch == 'release' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Git Pull
|
||||
- name: Git pull
|
||||
run: |
|
||||
git pull
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
|
||||
- name: List
|
||||
run: find .
|
||||
|
||||
- name: Clone updates repo
|
||||
- name: Checkout updates repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: zen-browser/updates-server
|
||||
@@ -426,98 +492,99 @@ jobs:
|
||||
run: |
|
||||
cd updates-server
|
||||
mkdir -p updates
|
||||
cp -a ../linux_update_manifest_generic/. updates/
|
||||
cp -a ../linux_update_manifest_specific/. updates/
|
||||
cp -a ../linux_update_manifest_x86_64/. updates/
|
||||
cp -a ../linux_update_manifest_aarch64/. updates/
|
||||
|
||||
if [[ $RELEASE_BRANCH == 'alpha' ]]; then
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
|
||||
if [[ $RELEASE_BRANCH == 'release' ]]; then
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-x86_64/update_manifest/. updates/
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-arm64/update_manifest/. updates/
|
||||
else
|
||||
cp -a ../windows_update_manifest_generic/. updates/
|
||||
cp -a ../windows_update_manifest_specific/. updates/
|
||||
cp -a ../windows_update_manifest_x86_64/. updates/
|
||||
cp -a ../windows_update_manifest_arm64/. updates/
|
||||
fi
|
||||
|
||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||
cp -a ../macos_update_manifest_x64/. updates/
|
||||
cp -a ../macos_update_manifest_x86_64/. updates/
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: 🚀 Update update manifests
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
repository: ./updates-server
|
||||
|
||||
# If we are on twilight, we want to just update the twilight tag's release
|
||||
- name: Update twilight tag
|
||||
# If we are on Twilight, we want to just update the Twilight tag's release
|
||||
- name: Update Twilight tag
|
||||
if: ${{ inputs.update_branch == 'twilight' }}
|
||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||
uses: marvinpinto/action-automatic-releases@master
|
||||
with:
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-generic.tar.bz2
|
||||
zen.linux-specific.tar.bz2
|
||||
zen-generic.AppImage
|
||||
zen-generic.AppImage.zsync
|
||||
zen-specific.AppImage
|
||||
zen-specific.AppImage.zsync
|
||||
zen.win-generic.zip
|
||||
zen.win-specific.zip
|
||||
zen.source.tar.zst
|
||||
zen.linux-x86_64.tar.bz2
|
||||
zen.linux-aarch64.tar.bz2
|
||||
zen-x86_64.AppImage
|
||||
zen-x86_64.AppImage.zsync
|
||||
zen-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
zen.win-x86_64.zip
|
||||
zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
windows-generic.mar
|
||||
linux-aarch64.mar
|
||||
windows.mar
|
||||
macos-x64.mar
|
||||
windows-arm64.mar
|
||||
macos-x86_64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer-generic.exe
|
||||
zen.macos-x64.dmg
|
||||
zen.installer-arm64.exe
|
||||
zen.macos-x86_64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
automatic_release_tag: 'twilight'
|
||||
title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})'
|
||||
draft: false
|
||||
prerelease: true
|
||||
repo_token: ${{ github.token }}
|
||||
repo_token: ${{ secrets.DEPLOY_KEY }}
|
||||
env:
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
|
||||
- name: release-github
|
||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||
if: ${{ inputs.update_branch == 'alpha' }}
|
||||
- name: Release
|
||||
uses: marvinpinto/action-automatic-releases@master
|
||||
if: ${{ inputs.update_branch == 'release' }}
|
||||
with:
|
||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||
prerelease: false
|
||||
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
||||
title: 'Release build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-generic.tar.bz2
|
||||
zen.linux-specific.tar.bz2
|
||||
zen-generic.AppImage
|
||||
zen-generic.AppImage.zsync
|
||||
zen-specific.AppImage
|
||||
zen-specific.AppImage.zsync
|
||||
.github/workflows/object/windows-x64-signed-generic/zen.win-generic.zip
|
||||
.github/workflows/object/windows-x64-signed-specific/zen.win-specific.zip
|
||||
zen.source.tar.zst
|
||||
zen.linux-x86_64.tar.bz2
|
||||
zen.linux-aarch64.tar.bz2
|
||||
zen-x86_64.AppImage
|
||||
zen-x86_64.AppImage.zsync
|
||||
zen-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip
|
||||
.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
.github/workflows/object/windows-x64-signed-generic/windows-generic.mar
|
||||
.github/workflows/object/windows-x64-signed-specific/windows.mar
|
||||
macos-x64.mar
|
||||
linux-aarch64.mar
|
||||
.github/workflows/object/windows-x64-signed-x86_64/windows.mar
|
||||
.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar
|
||||
macos-x86_64.mar
|
||||
macos-aarch64.mar
|
||||
.github/workflows/object/windows-x64-signed-specific/zen.installer.exe
|
||||
.github/workflows/object/windows-x64-signed-generic/zen.installer-generic.exe
|
||||
zen.macos-x64.dmg
|
||||
.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe
|
||||
.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe
|
||||
zen.macos-x86_64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
|
||||
prepare-flatpak:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
permissions: write-all
|
||||
name: Prepare Flatpak
|
||||
needs: [release, linux, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone flatpak repo
|
||||
- name: Checkout Flatpak repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: zen-browser/release-utils
|
||||
@@ -529,18 +596,19 @@ jobs:
|
||||
sudo apt-get update
|
||||
npm install
|
||||
|
||||
- name: Generate new flatpak release
|
||||
- name: Generate new Flatpak release
|
||||
run: |
|
||||
npm run build-flatpak -- \
|
||||
--version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: 🚀 Update releases for flatpak
|
||||
commit_message: 🚀 Update releases for Flatpak
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
|
||||
- name: Clone flatpak repo
|
||||
- name: Checkout Flatpak repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: zen-browser/flatpak
|
||||
@@ -552,82 +620,90 @@ jobs:
|
||||
pwd
|
||||
ls .
|
||||
ls ..
|
||||
mv releases.xml ./flatpak/io.github.zen_browser.zen.metainfo.xml
|
||||
mv releases.xml ./flatpak/app.zen_browser.zen.metainfo.xml
|
||||
# output the version to the file
|
||||
echo -n ${{ needs.build-data.outputs.version }} > ./flatpak/version
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: '[release]: Update flatpak manifest'
|
||||
commit_message: '[release]: Update Flatpak manifest'
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
repository: ./flatpak
|
||||
|
||||
- name: Wait 4 minutes for the flatpak repo to update
|
||||
run: sleep 240
|
||||
- name: Wait 2 minutes for the Flatpak repo to update
|
||||
run: sleep 120
|
||||
|
||||
release-flatpak:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
permissions: write-all
|
||||
name: Release Flatpak
|
||||
needs: [prepare-flatpak, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone flatpak repo
|
||||
- name: Checkout Flatpak repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: flathub/io.github.zen_browser.zen
|
||||
repository: flathub/app.zen_browser.zen
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download linux generic build
|
||||
- name: Download Linux x86_64 build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-generic.tar.bz2
|
||||
name: zen.linux-x86_64.tar.bz2
|
||||
|
||||
- name: Update repo
|
||||
- name: Download Linux aarch64 build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-aarch64.tar.bz2
|
||||
|
||||
- name: Update repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: zen-browser
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download flatpak archive
|
||||
- name: Download Flatpak archive
|
||||
run: |
|
||||
wget https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar -O archive.tar
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Prepare flatpak manifest
|
||||
- name: Prepare Flatpak manifest
|
||||
run: |
|
||||
python3 ./zen-browser/scripts/prepare-flatpak-release.py \
|
||||
--flatpak-archive archive.tar \
|
||||
--version ${{ needs.build-data.outputs.version }} \
|
||||
--linux-archive zen.linux-generic.tar.bz2 \
|
||||
--output io.github.zen_browser.zen.yml \
|
||||
--linux-archive zen.linux-x86_64.tar.bz2 \
|
||||
--linux-aarch64-archive zen.linux-aarch64.tar.bz2 \
|
||||
--output app.zen_browser.zen.yml \
|
||||
--template-root ./zen-browser/flatpak
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
git add io.github.zen_browser.zen.yml
|
||||
git add app.zen_browser.zen.yml
|
||||
git commit -m "Update to version ${{ needs.build-data.outputs.version }}"
|
||||
|
||||
- name: Clean up
|
||||
run: |
|
||||
rm -rf zen-browser
|
||||
rm -rf archive.tar
|
||||
rm -rf zen.linux-generic.tar.bz2
|
||||
rm -rf zen.linux-x86_64.tar.bz2
|
||||
|
||||
- name: Upload flatpak manifest
|
||||
- name: Upload Flatpak manifest
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: io.github.zen_browser.zen.yml
|
||||
path: ./io.github.zen_browser.zen.yml
|
||||
retention-days: 5
|
||||
name: app.zen_browser.zen.yml
|
||||
path: ./app.zen_browser.zen.yml
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
env:
|
||||
GIT_TRACE: 1
|
||||
GIT_CURL_VERBOSE: 1
|
||||
@@ -643,28 +719,3 @@ jobs:
|
||||
base: master
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
|
||||
release-homebrew:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
permissions: write-all
|
||||
name: Homebrew release
|
||||
needs: [release, mac, build-data]
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- name: Set up Homebrew
|
||||
uses: Homebrew/actions/setup-homebrew@master
|
||||
with:
|
||||
cask: true
|
||||
test-bot: false
|
||||
|
||||
- name: Setup git
|
||||
uses: Homebrew/actions/git-user-config@master
|
||||
with:
|
||||
username: zen-browser-bot
|
||||
|
||||
- name: Bump zen-browser
|
||||
uses: Homebrew/actions/bump-packages@master
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
casks: zen-browser
|
||||
|
21
.github/workflows/check-candidate-release.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
name: Check Firefox Candidate Release
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 21 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check_candidates:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Check for any updates
|
||||
env:
|
||||
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||
DISCORD_PING_IDS: ${{ secrets.DISCORD_PING_IDS }}
|
||||
run: |
|
||||
python3 scripts/check_rc_response.py
|
7
.github/workflows/clear-cache.yml
vendored
@@ -9,9 +9,10 @@ permissions:
|
||||
jobs:
|
||||
clear-cache:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clear cache
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
console.log("About to clear")
|
||||
@@ -19,12 +20,14 @@ jobs:
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
})
|
||||
|
||||
for (const cache of caches.data.actions_caches) {
|
||||
console.log(cache)
|
||||
github.rest.actions.deleteActionsCacheById({
|
||||
await github.rest.actions.deleteActionsCacheById({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
cache_id: cache.id,
|
||||
})
|
||||
}
|
||||
|
||||
console.log("Clear completed")
|
||||
|
37
.github/workflows/code-linter.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Code Linter
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
pull_request:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
pr-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup autopep8
|
||||
run: sudo apt install python3-autopep8
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Lint
|
||||
run: pnpm lint
|
64
.github/workflows/issue-metrics.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
name: Monthly issue metrics
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '3 2 1 * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: issue metrics
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Get dates for last month
|
||||
shell: bash
|
||||
run: |
|
||||
# Get the current date
|
||||
current_date=$(date +'%Y-%m-%d')
|
||||
|
||||
# Calculate the previous month
|
||||
previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d')
|
||||
|
||||
# Extract the year and month from the previous date
|
||||
previous_year=$(date -d "$previous_date" +'%Y')
|
||||
previous_month=$(date -d "$previous_date" +'%m')
|
||||
|
||||
# Calculate the first day of the previous month
|
||||
first_day=$(date -d "$previous_year-$previous_month-01" +'%Y-%m-%d')
|
||||
|
||||
# Calculate the last day of the previous month
|
||||
last_day=$(date -d "$first_day +1 month -1 day" +'%Y-%m-%d')
|
||||
|
||||
echo "$first_day..$last_day"
|
||||
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"
|
||||
echo "last_month_year=$previous_year" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Run issue-metrics tool
|
||||
uses: github/issue-metrics@v2
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
|
||||
HIDE_AUTHOR: true
|
||||
HIDE_TIME_TO_ANSWER: true
|
||||
SEARCH_QUERY: 'repo:zen-browser/desktop is:issue created:${{ env.last_month }}'
|
||||
|
||||
- name: Move metrics to docs folder
|
||||
run: |
|
||||
mkdir -p docs/issue-metrics
|
||||
rm -f docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
mv issue_metrics.md docs/issue-metrics/${{ env.last_month_year }}_${{ env.last_month }}.md
|
||||
|
||||
- name: Remove metrisc JSON
|
||||
run: |
|
||||
rm -f issue_metrics.json
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: 'Update monthly issue metrics'
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
97
.github/workflows/linux-release-build.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Linux Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -13,35 +14,34 @@ on:
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
# aarch64 does not need full 16x
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && matrix.arch == 'x86_64') && 'self-hosted' || 'ubuntu-latest' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
name: Build Linux - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
arch: [x86_64, aarch64]
|
||||
name: Build Linux - ${{ matrix.arch }}
|
||||
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
set -x
|
||||
sudo apt-get update --fix-missing
|
||||
sudo apt-get update
|
||||
sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||
sudo apt-get install -y python3 python3-pip dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Install sccache
|
||||
- name: Setup sccache
|
||||
env:
|
||||
LINK: https://github.com/mozilla/sccache/releases/download
|
||||
SCCACHE_VERSION: 0.2.13
|
||||
@@ -72,13 +72,12 @@ jobs:
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Save sccache
|
||||
uses: actions/cache@v3
|
||||
continue-on-error: false
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /home/runner/.cache/sccache
|
||||
key: ${{ runner.os }}-sccache
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
@@ -88,23 +87,30 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download firefox source and dependencies
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Fix rust version
|
||||
- name: Fix Rust version
|
||||
run: |
|
||||
# Install a rust version compatible with LLVM 18
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
rustup target add aarch64-unknown-linux-gnu
|
||||
else
|
||||
rustup target add x86_64-unknown-linux-gnu
|
||||
fi
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Build language packs
|
||||
@@ -113,45 +119,50 @@ jobs:
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="linux"
|
||||
./mach --no-interactive bootstrap --application-choice browser
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
continue-on-error: true
|
||||
run: sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: sh .github/workflows/src/release-build.sh
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm package
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
export ZEN_RELEASE=1
|
||||
pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2"
|
||||
mv dist/output.mar linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.arch }}.tar.bz2"
|
||||
mv dist/output.mar linux${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
|
||||
- name: Upload binary
|
||||
- name: Upload build artifact (binary)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
retention-days: 5
|
||||
name: zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.arch }}.tar.bz2
|
||||
|
||||
- name: Upload mar
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
retention-days: 5
|
||||
name: linux${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
path: ./linux${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
- name: Upload build artifact (update manifests)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
retention-days: 5
|
||||
name: linux_update_manifest_${{ matrix.arch }}
|
||||
path: ./dist/update
|
||||
|
126
.github/workflows/macos-release-build.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: macOS Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -14,33 +15,30 @@ on:
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
runs-on: ${{ inputs.release-branch == 'release' && 'macos-14' || 'macos-14' }}
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- arch: aarch64
|
||||
os: macos-14
|
||||
- arch: x64
|
||||
os: macos-13
|
||||
arch: [x86_64, aarch64]
|
||||
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
# note: This will use the version defined in '.python-version' by default
|
||||
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
@@ -48,43 +46,38 @@ jobs:
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
brew update
|
||||
|
||||
brew install cairo sccache gnu-tar mercurial
|
||||
sudo pip install setuptools
|
||||
|
||||
# completly uninstall python3 and python3.12
|
||||
brew uninstall --ignore-dependencies python3.12 -f
|
||||
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
python3 -m pip install --user mercurial
|
||||
|
||||
rm '/usr/local/bin/2to3-3.11' # fix Could not symlink bin/2to3-3.11
|
||||
rm '/usr/local/bin/2to3-3.12' # fix Could not symlink bin/2to3-3.12
|
||||
rm /usr/local/bin/2to3 # fix Could not symlink bin/2to3
|
||||
rm '/usr/local/bin/idle3.11' #fix Could not symlink bin/idle3.11
|
||||
rm '/usr/local/bin/idle3.12' # fix Could not symlink bin/idle3.12
|
||||
rm '/usr/local/bin/idle3' # fix Could not symlink bin/idle3
|
||||
rm '/usr/local/bin/pydoc3.11' # fix Could not symlink bin/pydoc3.11
|
||||
rm '/usr/local/bin/pydoc3.12' # fix Could not symlink bin/pydoc3.12
|
||||
rm '/usr/local/bin/pydoc3' # fix Could not symlink bin/pydoc3
|
||||
rm '/usr/local/bin/python3.11' # fix Could not symlink bin/python3.11
|
||||
rm '/usr/local/bin/python3.12' # fix Could not symlink bin/python3.12
|
||||
rm '/usr/local/bin/python3' # fix Could not symlink bin/python3
|
||||
rm '/usr/local/bin/python3.11-config' # fix Could not symlink bin/python3.11-config
|
||||
rm '/usr/local/bin/python3.12-config' # fix Could not symlink bin/python3.12-config
|
||||
rm '/usr/local/bin/python3-config' # fix Could not symlink bin/python3-config
|
||||
rm '/usr/local/bin/2to3-3.11' '/usr/local/bin/2to3-3.12' '/usr/local/bin/2to3'
|
||||
rm '/usr/local/bin/idle3.11' '/usr/local/bin/idle3.12' '/usr/local/bin/idle3'
|
||||
rm '/usr/local/bin/pydoc3.11' '/usr/local/bin/pydoc3.12' '/usr/local/bin/pydoc3'
|
||||
rm '/usr/local/bin/python3.11' '/usr/local/bin/python3.12' '/usr/local/bin/python3'
|
||||
rm '/usr/local/bin/python3.11-config' '/usr/local/bin/python3.12-config' '/usr/local/bin/python3-config'
|
||||
|
||||
brew install watchman
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
source $HOME/.cargo/env
|
||||
|
||||
- name: Force usage fo gnu-tar
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
rustup target add aarch64-apple-darwin
|
||||
else
|
||||
rustup target add x86_64-apple-darwin
|
||||
fi
|
||||
|
||||
- name: Force usage of gnu-tar
|
||||
run: |
|
||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zsh
|
||||
source ~/.bash_profile
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
@@ -94,60 +87,72 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download firefox source and dependancies
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: |
|
||||
pnpm surfer import --verbose
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: build Zen
|
||||
- name: Build Zen
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
run: |
|
||||
if test "${{ matrix.arch }}" = "x64"; then
|
||||
export ZEN_DISABLE_LTO=1
|
||||
fi
|
||||
sh .github/workflows/src/release-build.sh
|
||||
export SURFER_PLATFORM="darwin"
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Rebuild Zen if failed
|
||||
if: failure()
|
||||
run: sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||
uses: apple-actions/import-codesign-certs@v3
|
||||
- name: Import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||
uses: Apple-Actions/import-codesign-certs@v3
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.macOS_CERTIFICATES_P12_For_App_BASE64 }}
|
||||
p12-password: ${{ secrets.macOS_CERTIFICATES_P12_PASSWORD }}
|
||||
|
||||
- name: Import provisioning profile for .app
|
||||
run: |
|
||||
echo "${{ secrets.macOS_PROVISIONING_PROFILE }}" | base64 --decode > ./engine/Zen_Browser.provisionprofile
|
||||
ls -la
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
MACOS_APPLE_ACCOUNT_ID: ${{ secrets.macOS_AppleAccountId }}
|
||||
MACOS_APPLE_DEVELOPER_ID_TEAM_ID: ${{ secrets.macOS_AppleDeveloperIdTeamId }}
|
||||
MACOS_APPLE_DEVELOPER_ID_PASSWORD: ${{ secrets.macOS_AppleDeveloperIdPassword }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
|
||||
export ZEN_RELEASE=1
|
||||
pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Sign to .dmg
|
||||
- name: Remove sensitive information
|
||||
run: |
|
||||
rm -f ./engine/Zen_Browser.provisionprofile
|
||||
|
||||
- name: Sign .dmg
|
||||
run: |
|
||||
set -ex
|
||||
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||
@@ -157,23 +162,28 @@ jobs:
|
||||
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||
--no-s3-acceleration \
|
||||
--verbose \
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||
|
||||
- name: Upload artifact
|
||||
- name: Upload build artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: zen.macos-${{ matrix.arch }}.dmg
|
||||
path: ./zen.macos-${{ matrix.arch }}.dmg
|
||||
|
||||
- name: Upload mar
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos-${{ matrix.arch }}.mar
|
||||
path: ./macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
- name: Upload build artifact (update manifests)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
name: macos_update_manifest_${{ matrix.arch }}
|
||||
path: ./dist/update
|
||||
|
27
.github/workflows/pr-test.yml
vendored
@@ -1,4 +1,3 @@
|
||||
|
||||
name: Pull request test
|
||||
|
||||
on:
|
||||
@@ -11,26 +10,26 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Install Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
run: npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Download firefox
|
||||
run: |
|
||||
surfer download
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
run: surfer download
|
||||
|
||||
- name: Import patches
|
||||
run: |
|
||||
surfer i
|
||||
run: surfer i
|
||||
|
16
.github/workflows/src/release-build.sh
vendored
@@ -1,17 +1,18 @@
|
||||
set -ex
|
||||
#!/bin/bash
|
||||
|
||||
if command -v apt-get &> /dev/null
|
||||
then
|
||||
set -xe
|
||||
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo add-apt-repository ppa:kisak/kisak-mesa
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb
|
||||
sudo apt-get install -y xvfb libnvidia-egl-wayland1 mesa-utils libgl1-mesa-dri
|
||||
fi
|
||||
|
||||
ulimit -n 4096
|
||||
|
||||
# Check if xfvb is installed
|
||||
if ! command -v Xvfb &> /dev/null; then
|
||||
if command -v Xvfb &> /dev/null; then
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
Xvfb :2 -screen 0 1024x768x24 &
|
||||
Xvfb :2 -nolisten tcp -noreset -screen 0 1024x768x24 &
|
||||
export LLVM_PROFDATA=$HOME/.mozbuild/clang/bin/llvm-profdata
|
||||
export DISPLAY=:2
|
||||
fi
|
||||
@@ -20,6 +21,7 @@ if ! command -v Xvfb &> /dev/null; then
|
||||
else
|
||||
echo "Xvfb could not be found, running without it"
|
||||
echo "ASSUMING YOU ARE RUNNING THIS ON MACOS"
|
||||
|
||||
set -v
|
||||
export ZEN_RELEASE=1
|
||||
pnpm build
|
||||
|
21
.github/workflows/twilight-release-schedule.yml
vendored
@@ -1,8 +1,15 @@
|
||||
name: Zen Twilight Scheduled Releases
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
- cron: '0 23 * * *'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_release:
|
||||
description: 'Whether to do a release'
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
@@ -11,7 +18,7 @@ jobs:
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/build.yml
|
||||
with:
|
||||
create_release: true
|
||||
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
||||
update_branch: twilight
|
||||
update_version: false
|
||||
|
||||
@@ -20,12 +27,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
needs: twilight-release-schedule
|
||||
steps:
|
||||
- name: Checkout
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
# TODO:
|
||||
node-version-file: '.nvmrc'
|
||||
|
15
.github/workflows/update-submodules.yml
vendored
@@ -1,4 +1,3 @@
|
||||
|
||||
name: Update Components Submodules
|
||||
|
||||
on:
|
||||
@@ -6,25 +5,27 @@ on:
|
||||
branches:
|
||||
- dev
|
||||
workflow_dispatch:
|
||||
workflow_call: # This is a custom event that we will trigger manually
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
update-submodules:
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Update submodules
|
||||
run: |
|
||||
git submodule update --remote --merge
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "[skip ci] 📦 Update Submodules!"
|
||||
commit_message: '[skip ci] 📦 Update submodules'
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
||||
|
57
.github/workflows/windows-profile-build.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Windows PGO Builds
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -17,59 +18,72 @@ on:
|
||||
|
||||
jobs:
|
||||
windows-profile-build:
|
||||
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: |
|
||||
Windows Profile Build - ${{ matrix.arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
runs-on: windows-latest
|
||||
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
|
||||
arch: [x86_64, aarch64]
|
||||
|
||||
runs-on: ${{ inputs.release-branch == 'release' && 'windows-latest' || 'windows-latest' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
- name: Install pnpm
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Install Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact
|
||||
run: npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download artifact
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: C:\artifact
|
||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
name: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-zen-windows-profile-data-and-jarlog.zip
|
||||
|
||||
- name: Unpack artifact
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
cd C:\artifact
|
||||
ls
|
||||
Expand-Archive -Path .\${{ inputs.profile-data-path-archive }} -DestinationPath C:\artifact
|
||||
ls
|
||||
|
||||
- name: Setup
|
||||
run: |
|
||||
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe", "C:\MozillaBuildSetup-Latest.exe")
|
||||
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||
- name: Download firefox
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
git config --global core.safecrlf false
|
||||
pnpm surfer download
|
||||
|
||||
- name: Import patches
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
env:
|
||||
SURFER_NO_BRANDING_PATCH: true
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Generate
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
ls
|
||||
$Env:USE_MINTTY = "0"
|
||||
@@ -83,22 +97,25 @@ jobs:
|
||||
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||
|
||||
- name: 🐛 Debug Session
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: Warpbuilds/gha-debug@v1.3
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move profile data
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
dir
|
||||
dir engine
|
||||
mv engine/merged.profdata merged.profdata
|
||||
mv engine/en-US.log en-US.log
|
||||
|
||||
- name: Publish artifacts
|
||||
- name: Upload artifacts
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 1
|
||||
path: |
|
||||
merged.profdata
|
||||
en-US.log
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: windows-profdata-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
|
190
.github/workflows/windows-release-build.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Windows Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -20,50 +21,54 @@ on:
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
name: Build Windows - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
runs-on: ubuntu-latest
|
||||
name: Build Windows - ${{ matrix.arch }}
|
||||
# aarch64 does not need full 16x, and we also dont use full LTO when generating GPO
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'ubuntu-latest' }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
arch: [x86_64, aarch64]
|
||||
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Setup git
|
||||
- name: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pnpm i
|
||||
pnpm install
|
||||
sudo apt-get install -y python3 python3-pip dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||
|
||||
- name: Load surfer CI setup
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download
|
||||
- name: Download Firefox and dependencies
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: 'win-cross Cache'
|
||||
- name: win-cross Cache
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
@@ -79,89 +84,129 @@ jobs:
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Setup For Windows
|
||||
if: steps.cache-win-cross.outputs.cache-hit != 'true'
|
||||
- name: Setup for Windows
|
||||
if: steps.cache-win-cross.outputs.cache-hit != 'true' && !(inputs.generate-gpo && matrix.arch == 'aarch64')
|
||||
run: |
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
|
||||
sudo add-apt-repository ppa:savoury1/backports
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip autoconf \
|
||||
autoconf2.13 \
|
||||
automake \
|
||||
bison \
|
||||
build-essential \
|
||||
cabextract \
|
||||
curl \
|
||||
cmake \
|
||||
flex \
|
||||
gawk \
|
||||
gcc-multilib \
|
||||
git \
|
||||
gnupg \
|
||||
jq \
|
||||
libbz2-dev \
|
||||
libexpat1-dev \
|
||||
libffi-dev \
|
||||
libncursesw5-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libtool \
|
||||
libucl-dev \
|
||||
libxml2-dev \
|
||||
msitools \
|
||||
ninja-build \
|
||||
openssh-client \
|
||||
p7zip-full \
|
||||
pkg-config \
|
||||
procps \
|
||||
python3-requests \
|
||||
python3-toml \
|
||||
scons \
|
||||
subversion \
|
||||
tar \
|
||||
unzip \
|
||||
uuid \
|
||||
uuid-dev \
|
||||
wget \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
aria2
|
||||
echo Setup wine
|
||||
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
||||
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
||||
rm wine.tar.zst
|
||||
|
||||
echo Setup Visual Studio
|
||||
sudo apt install -y msitools python3-pip
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||
|
||||
- name: Bootstrap
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
set -x
|
||||
cd engine/
|
||||
|
||||
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
|
||||
|
||||
cd ..
|
||||
npm install -g pnpm
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm surfer bootstrap
|
||||
|
||||
cd engine/
|
||||
ls ~/.mozbuild/clang/lib/clang/
|
||||
echo "export LIB=\"$(cd ~/.mozbuild/clang/lib/clang/* && cd lib/windows && pwd)\"" >> ../configs/common/mozconfig
|
||||
cat ../configs/common/mozconfig
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install dos2unix
|
||||
|
||||
ls ~/win-cross/wine || true
|
||||
ls ~/win-cross/vs2022 || true
|
||||
|
||||
- name: setup Rust
|
||||
- name: Setup Rust
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
cd engine/
|
||||
# Install a rust version compatible with 17
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
else
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
fi
|
||||
cargo install cargo-download
|
||||
cargo download -x windows=0.58.0
|
||||
#? https://github.com/mozilla/sccache#known-caveats
|
||||
export CARGO_INCREMENTAL=0
|
||||
|
||||
echo "" >> ../configs/common/mozconfig
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact if use profdata
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
- name: Download artifact (if use profdata)
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
with:
|
||||
path: ~/artifact
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: windows-profdata-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
|
||||
- name: Show artifact info
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
if: ${{ !inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
ls ~/artifact
|
||||
ls ~/artifact/en-US.log
|
||||
ls ~/artifact/merged.profdata
|
||||
|
||||
chmod +x ~/artifact/en-US.log
|
||||
chmod +x ~/artifact/merged.profdata
|
||||
|
||||
- name: Build
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
|
||||
run: |
|
||||
set -x
|
||||
dos2unix configs/windows/mozconfig
|
||||
@@ -170,26 +215,30 @@ jobs:
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/release-build.sh
|
||||
bash .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
ZEN_GA_DISABLE_PGO: true
|
||||
run: |
|
||||
set -x
|
||||
export SURFER_PLATFORM="win32"
|
||||
export ZEN_CROSS_COMPILING=1
|
||||
export ZEN_RELEASE=1
|
||||
pnpm package
|
||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
|
||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
|
||||
ls ./dist
|
||||
ls .
|
||||
|
||||
- name: 🐛 Debug Session
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: Warpbuilds/gha-debug@v1.3
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
set -x
|
||||
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
|
||||
@@ -197,55 +246,66 @@ jobs:
|
||||
- name: Rename artifacts
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
mv ./zen.win64.zip zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
mv ./zen.win64.zip zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
|
||||
mv ./dist/output.mar windows${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
|
||||
- name: Upload PGO build
|
||||
- name: Upload artifact (PGO)
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
with:
|
||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||
retention-days: 5
|
||||
name: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.profile-data-path-archive }}
|
||||
path: ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- name: Remove unnecessary files from obj
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
else
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
fi
|
||||
|
||||
- name: Upload dist object
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: engine/obj-x86_64-pc-windows-msvc/
|
||||
retention-days: 5
|
||||
name: windows-x64-obj-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
path: engine/obj-${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }}-pc-windows-msvc/
|
||||
|
||||
- name: Upload zip file if twilight branch
|
||||
- name: Upload artifact (if Twilight branch, binary)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
retention-days: 5
|
||||
name: zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
|
||||
path: ./zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
|
||||
|
||||
- name: Upload installer if twilight branch
|
||||
- name: Upload artifact (if Twilight branch, installer)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
retention-days: 5
|
||||
name: zen.installer${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
path: ./zen.installer${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
|
||||
- name: Upload mar if twilight branch
|
||||
- name: Upload artifact (if Twilight branch, .mar)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
retention-days: 5
|
||||
name: windows${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
path: ./windows${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
|
||||
- name: Upload update manifests if twilight branch
|
||||
- name: Upload artifact (if Twilight branch, update manifests)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
retention-days: 5
|
||||
name: windows_update_manifest_${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
path: ./dist/update
|
||||
|
2
.gitignore
vendored
@@ -1,4 +1,3 @@
|
||||
|
||||
.dotbuild/
|
||||
engine/
|
||||
firefox-*/
|
||||
@@ -9,3 +8,4 @@ __pycache__/
|
||||
dist/
|
||||
|
||||
windsign-temp/
|
||||
venv/
|
||||
|
3
.gitmodules
vendored
@@ -1,6 +1,3 @@
|
||||
[submodule "src/browser/base/content/zen-components"]
|
||||
path = src/browser/base/content/zen-components
|
||||
url = https://github.com/zen-browser/components
|
||||
[submodule "l10n"]
|
||||
path = l10n
|
||||
url = https://github.com/zen-browser/l10n-packs
|
||||
|
@@ -1 +1 @@
|
||||
# npx lint-staged
|
||||
npx lint-staged
|
||||
|
@@ -3,10 +3,25 @@ engine/
|
||||
**/*.html
|
||||
**/*.xhtml
|
||||
**/*.inc.xhtml
|
||||
**/*.bundle.min.js
|
||||
**/*.min.js
|
||||
**/*.min.mjs
|
||||
|
||||
**/*.svg
|
||||
|
||||
surfer.json
|
||||
|
||||
src/browser/app/profile/*.js
|
||||
pnpm-lock.yaml
|
||||
|
||||
**/engine/
|
||||
|
||||
docs/issue-metrics/*.md
|
||||
|
||||
.husky/
|
||||
|
||||
# Some CSS files are preprocessed and prettier doesn't handle them well
|
||||
# We also dont want to format the CSS files that are generated by the build
|
||||
src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css
|
||||
src/browser/base/zen-components/ZenEmojies.mjs
|
||||
build/codesign/codesign.bash
|
||||
|
@@ -8,5 +8,5 @@
|
||||
"jsxSingleQuote": false,
|
||||
"semi": true,
|
||||
"printWidth": 128,
|
||||
"plugins": []
|
||||
"plugins": ["prettier-plugin-sh"]
|
||||
}
|
||||
|
1
.python-version
Normal file
@@ -0,0 +1 @@
|
||||
3.11
|
@@ -5,7 +5,7 @@ Exec=zen %u
|
||||
Icon=zen
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
||||
StartupWMClass=zen-alpha
|
||||
StartupWMClass=zen
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
|
@@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
- Demonstrating empathy and kindness toward other people
|
||||
- Being respectful of differing opinions, viewpoints, and experiences
|
||||
- Giving and gracefully accepting constructive feedback
|
||||
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
- Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
- The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
- Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
53
README.md
@@ -1,10 +1,10 @@
|
||||
<img src="./docs/assets/zen-black.svg" width="100px" align="left">
|
||||
<img src="./docs/assets/zen-dark.svg" width="100px" align="left">
|
||||
|
||||
### `Zen Browser`
|
||||
|
||||
[](https://github.com/zen-browser/desktop/releases)
|
||||
[](https://crowdin.com/project/zen-browser)
|
||||
|
||||
[](https://github.com/zen-browser/desktop/actions/workflows/build.yml)
|
||||
|
||||
✨ Experience tranquillity while browsing the web without people tracking you! Zen is a privacy-focused browser that blocks trackers, ads, and other unwanted content while offering the best browsing experience!
|
||||
|
||||
@@ -21,15 +21,16 @@
|
||||
Documentation
|
||||
</a>
|
||||
•
|
||||
<a href="https//zen-browser.app/release-notes/latest">
|
||||
<a href="https://zen-browser.app/release-notes/latest">
|
||||
Release Notes
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## 🖥️ Compatibility
|
||||
|
||||
Zen is currently built using firefox version `131.0.3`! 🚀
|
||||
Zen is currently built using firefox version `134.0.1`! 🚀
|
||||
|
||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using firefox version `RC 134.0.1`!
|
||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||
|
||||
@@ -37,6 +38,25 @@ Zen is currently built using firefox version `131.0.3`! 🚀
|
||||
|
||||
Zen is an open-source project, and we welcome contributions from the community! Please take a look at the [contribution guidelines](./docs/contribute.md) before getting started!
|
||||
|
||||
### Issue metrics
|
||||
|
||||
We keep track of how many issues are closed at the end of the month in [docs/issue-metrics](./docs/issue-metrics). This is to keep track of how many issues are being closed, because who doesn't like to see progress? 📈
|
||||
|
||||
### Versioning
|
||||
|
||||
Zen uses [Semantic Versioning](https://semver.org/) for versioning. Meaning, versions are displayed as `a.bc.d` where:
|
||||
|
||||
- `a` is the major version
|
||||
- `b` is the minor version
|
||||
- `c` is the branch prefix
|
||||
- `d` is the patch version
|
||||
|
||||
### Branches
|
||||
|
||||
Zen is divided into 2 main branches. We use `dev` for development and `stable` for stable releases. The `dev` branch is where all the new features are added and where `twilight` builds are generated. The `stable` branch is where the stable releases are generated.
|
||||
|
||||
We divide into 2 branches in case there's any really important security update (for example) that needs to be released before the next stable release. This allows us to do patches without releasing unstable versions to the public.
|
||||
|
||||
## ⚡ Performance
|
||||
|
||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible! Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||
@@ -54,11 +74,7 @@ If you dont see your OS listed below, that's because we already have it in our [
|
||||
##### Winget
|
||||
|
||||
```ps
|
||||
# Generic version
|
||||
winget install --id Zen-Team.Zen-Browser
|
||||
|
||||
# Optimized version
|
||||
winget install --id Zen-Team.Zen-Browser.Optimized
|
||||
```
|
||||
|
||||
#### macOS
|
||||
@@ -77,28 +93,27 @@ brew install --cask zen-browser
|
||||
##### Arch-based distributions
|
||||
|
||||
```sh
|
||||
# For generic version
|
||||
yay -S zen-browser-bin
|
||||
|
||||
# For optimized version
|
||||
yay -S zen-browser-avx2-bin
|
||||
```
|
||||
|
||||
##### Other Linux distributions (AppImage with automated system integration)
|
||||
|
||||
- `native` tarball install:
|
||||
`bash <(curl -s https://updates.zen-browser.app/install.sh)`
|
||||
|
||||
- `zsync` is required for the Update feature of the script below
|
||||
|
||||
```sh
|
||||
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
||||
```
|
||||
|
||||
* Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄
|
||||
- Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄
|
||||
|
||||
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
||||
|
||||
## 👨💻 Development and Contributing
|
||||
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/components).
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/browser/base/zen-components).
|
||||
|
||||
#### `Run Locally`
|
||||
|
||||
@@ -117,15 +132,9 @@ Zen couldn't be in its current state without the help of these amazing projects!
|
||||
|
||||
### 🖥️ Comparison with other browsers
|
||||
|
||||
As you can see, chromium based browsers are the most popular browsers, help us change that by starring the project and spreading the word! 🌟
|
||||
Thanks everyone for making zen stand out among these giants!
|
||||
|
||||
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chromium/chromium,zen-browser/desktop,brave/brave-browser&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
[](https://star-history.com/#zen-browser/desktop&chromium/chromium&brave/brave-browser&Date)
|
||||
|
||||
## 📄 License
|
||||
|
||||
|
@@ -28,5 +28,12 @@
|
||||
for native messaging webextension helper applications launched by
|
||||
Firefox which rely on Apple Events to signal other processes. -->
|
||||
<key>com.apple.security.automation.apple-events</key><true/>
|
||||
|
||||
<!-- For SmartCardServices(7) -->
|
||||
<key>com.apple.security.smartcard</key><true/>
|
||||
|
||||
<!-- Required for com.apple.developer.web-browser.public-key-credential -->
|
||||
<key>com.apple.application-identifier</key>
|
||||
<string>H36NPCN86W.app.zen-browser.zen</string>
|
||||
</dict>
|
||||
</plist>
|
@@ -111,6 +111,9 @@ echo "-------------------------------------------------------------------------"
|
||||
|
||||
set -x
|
||||
|
||||
# move Zen_Browser.provisionprofile to the Contents directory
|
||||
#cp Zen_Browser.provisionprofile "${BUNDLE}"/Contents/embedded.provisionprofile
|
||||
|
||||
# Clear extended attributes which cause codesign to fail
|
||||
xattr -cr "${BUNDLE}"
|
||||
|
||||
@@ -119,8 +122,15 @@ xattr -cr "${BUNDLE}"
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" \
|
||||
"${BUNDLE}/Contents/Library/LaunchServices/org.mozilla.updater" \
|
||||
"${BUNDLE}/Contents/MacOS/XUL" \
|
||||
"${BUNDLE}/Contents/MacOS/pingsender" \
|
||||
"${BUNDLE}/Contents/MacOS/*.dylib" \
|
||||
"${BUNDLE}"/Contents/embedded.provisionprofile \
|
||||
"${BUNDLE}/Contents/MacOS/pingsender"
|
||||
|
||||
# Sign every ${BUNDLE}/Contents/MacOS/*.dylib
|
||||
find "${BUNDLE}"/Contents/MacOS -type f -name "*.dylib" -exec \
|
||||
codesign --force --verbose --sign "$IDENTITY" {} \;
|
||||
|
||||
find "${BUNDLE}"/Contents/MacOS -type f -name "*.dylib" -exec \
|
||||
codesign -vvv --strict --deep --verbose {} \;
|
||||
|
||||
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||
"${BUNDLE}"/Contents/MacOS/updater.app
|
||||
|
@@ -1,127 +1,119 @@
|
||||
param(
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity,
|
||||
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string][Parameter(Mandatory=$true)]$GithubRunId
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
echo "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
|
||||
# Download in parallel
|
||||
|
||||
#show output too
|
||||
Start-Job -Name "DownloadGitObjectsRepo" -ScriptBlock {
|
||||
param($PWD)
|
||||
echo "Downloading git objects repo to $PWD\windsign-temp\windows-binaries"
|
||||
git clone https://github.com/zen-browser/windows-binaries.git $PWD\windsign-temp\windows-binaries
|
||||
echo "Downloaded git objects repo to"
|
||||
} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
gh run download $GithubRunId --name windows-x64-obj-specific -D windsign-temp\windows-x64-obj-specific
|
||||
echo "Downloaded specific artifacts"
|
||||
gh run download $GithubRunId --name windows-x64-obj-generic -D windsign-temp\windows-x64-obj-generic
|
||||
echo "Downloaded generic artifacts"
|
||||
|
||||
Wait-Job -Name "DownloadGitObjectsRepo"
|
||||
|
||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||
|
||||
pnpm surfer ci --brand alpha
|
||||
|
||||
function SignAndPackage($name) {
|
||||
echo "Executing on $name"
|
||||
rmdir .\dist -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir engine\obj-x86_64-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-x86_64-pc-windows-msvc\ -Recurse
|
||||
echo "Signing $name"
|
||||
|
||||
# Collect all .exe and .dll files into a list
|
||||
$files = Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.dll
|
||||
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
echo "Packaging $name"
|
||||
$env:SURFER_SIGNING_MODE="sign"
|
||||
$env:MAR="$PWD\\build\\winsign\\mar.exe"
|
||||
if ($name -eq "generic") {
|
||||
$env:SURFER_COMPAT="true"
|
||||
} else {
|
||||
rm env:SURFER_COMPAT -ErrorAction SilentlyContinue
|
||||
function Download-Artifacts {
|
||||
param(
|
||||
[string]$Name,
|
||||
[string]$GithubRunId
|
||||
)
|
||||
gh run download $GithubRunId --name $Name -D (Join-Path $PWD 'windsign-temp\windows-x64-obj-' + $Name)
|
||||
Write-Verbose "Downloaded $Name artifacts"
|
||||
}
|
||||
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
function Sign-Files {
|
||||
param(
|
||||
[string]$Path
|
||||
)
|
||||
$files = Get-ChildItem -Path $Path -Recurse -Include *.exe, *.dll
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
}
|
||||
|
||||
function Move-File {
|
||||
param(
|
||||
[string]$Source,
|
||||
[string]$Destination
|
||||
)
|
||||
if (Test-Path $Source) {
|
||||
Move-Item $Source -Destination $Destination -Force
|
||||
Write-Verbose "Moved $Source to $Destination"
|
||||
} else {
|
||||
Write-Warning "Source file $Source does not exist."
|
||||
}
|
||||
}
|
||||
|
||||
function Create-Tar {
|
||||
param(
|
||||
[string]$Name
|
||||
)
|
||||
$tarPath = Join-Path $PWD "windsign-temp\windows-x64-signed-$Name"
|
||||
Remove-Item -Path $tarPath -Recurse -ErrorAction SilentlyContinue
|
||||
New-Item -ItemType Directory -Path $tarPath | Out-Null
|
||||
|
||||
Move-File -Source ".\dist\output.mar" -Destination (Join-Path $tarPath ("windows-$Name.mar"))
|
||||
Move-File -Source ".\dist\zen.installer.exe" -Destination (Join-Path $tarPath ("zen.installer$($Name -eq 'arm64' ? '-arm64' : '') .exe"))
|
||||
Move-File -Source (Get-ChildItem ".\dist\*.en-US.win64$($Name -eq 'arm64' ? '-aarch64' : '') .zip" | Select-Object -First 1) -Destination (Join-Path $tarPath ("zen.win-$Name.zip"))
|
||||
}
|
||||
|
||||
function SignAndPackage {
|
||||
param(
|
||||
[string]$Name
|
||||
)
|
||||
|
||||
Write-Verbose "Executing on $Name"
|
||||
Remove-Item -Path ".\dist" -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "engine\obj-x86_64-pc-windows-msvc\" -Recurse -ErrorAction SilentlyContinue
|
||||
Copy-Item -Path (Join-Path $PWD "windsign-temp\windows-x64-obj-$Name") -Destination "engine\obj-x86_64-pc-windows-msvc\" -Recurse
|
||||
Write-Verbose "Signing $Name"
|
||||
|
||||
Sign-Files -Path "engine\obj-x86_64-pc-windows-msvc\"
|
||||
|
||||
$env:SURFER_SIGNING_MODE = "sign"
|
||||
$env:MAR = (Join-Path $PWD "build\winsign\mar.exe")
|
||||
$env:SURFER_COMPAT = if ($Name -eq "arm64") { "aarch64" } else { "x86_64" }
|
||||
Write-Verbose "Compat Mode? $env:SURFER_COMPAT"
|
||||
|
||||
pnpm surfer package --verbose
|
||||
|
||||
# In the release script, we do the following:
|
||||
# tar -xvf .github/workflows/object/windows-x64-signed-generic.tar.gz -C windows-x64-signed-generic
|
||||
# We need to create a tar with the same structure and no top-level directory
|
||||
# Inside, we need:
|
||||
# - update_manifest/*
|
||||
# - windows.mar or windows-generic.mar
|
||||
# - zen.installer.exe or zen.installer-generic.exe
|
||||
# - zen.win-generic.zip or zen.win-specific.zip
|
||||
echo "Creating tar for $name"
|
||||
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mkdir windsign-temp\windows-x64-signed-$name
|
||||
Create-Tar -Name $Name
|
||||
|
||||
# Move the MAR, add the `-generic` suffix if needed
|
||||
if ($name -eq "generic") {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows-generic.mar
|
||||
} else {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows.mar
|
||||
# Extract and sign the contents of the zip
|
||||
Expand-Archive -Path (Join-Path $tarPath ("zen.win-$Name.zip")) -DestinationPath (Join-Path $tarPath ("zen.win-$Name"))
|
||||
Remove-Item -Path (Join-Path $tarPath ("zen.win-$Name.zip")) -ErrorAction SilentlyContinue
|
||||
|
||||
Sign-Files -Path (Join-Path $tarPath ("zen.win-$Name"))
|
||||
Compress-Archive -Path (Join-Path $tarPath ("zen.win-$Name")) -DestinationPath (Join-Path $tarPath ("zen.win-$Name.zip"))
|
||||
Remove-Item -Path (Join-Path $tarPath ("zen.win-$Name")) -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
Move-File -Source ".\dist\update\*" -Destination (Join-Path $tarPath "update_manifest")
|
||||
|
||||
Write-Verbose "Finished $Name"
|
||||
}
|
||||
|
||||
# Move the installer
|
||||
if ($name -eq "generic") {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-generic.exe
|
||||
} else {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||
}
|
||||
Write-Verbose "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
New-Item -ItemType Directory -Path "windsign-temp" -ErrorAction SilentlyContinue
|
||||
|
||||
# Move the zip
|
||||
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
Download-Artifacts -Name "windows-x64-obj-arm64" -GithubRunId $GithubRunId
|
||||
Download-Artifacts -Name "windows-x64-obj-x86_64" -GithubRunId $GithubRunId
|
||||
|
||||
# Extract the zip, sign everything inside, and repackage it
|
||||
Expand-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name.zip -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name
|
||||
rm windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.dll
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
Compress-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
rmdir windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -ErrorAction SilentlyContinue
|
||||
New-Item -ItemType Directory -Path "engine\obj-x86_64-pc-windows-msvc" -ErrorAction SilentlyContinue
|
||||
pnpm surfer ci --brand release
|
||||
|
||||
# Move the manifest
|
||||
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
|
||||
SignAndPackage -Name "arm64"
|
||||
SignAndPackage -Name "x86_64"
|
||||
|
||||
echo "Invoking tar for $name"
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
|
||||
|
||||
echo "Finished $name"
|
||||
}
|
||||
|
||||
SignAndPackage specific
|
||||
SignAndPackage generic
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
cd windsign-temp\windows-binaries
|
||||
Write-Verbose "All artifacts signed and packaged, ready for release!"
|
||||
Write-Verbose "Committing the changes to the repository"
|
||||
cd (Join-Path $PWD "windsign-temp\windows-binaries")
|
||||
git add .
|
||||
git commit -m "Sign and package windows artifacts"
|
||||
git push
|
||||
cd ..\..
|
||||
cd -
|
||||
|
||||
# Cleaning up
|
||||
Write-Verbose "Cleaning up"
|
||||
Remove-Item -Path "windsign-temp\windows-x64-obj-x86_64" -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "windsign-temp\windows-x64-obj-arm64" -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "All done!"
|
||||
echo "All the artifacts (Generic and Specific) are signed and packaged, get a rest now!"
|
||||
Read-Host "Press Enter to continue"
|
||||
|
||||
echo "Cleaning up"
|
||||
rmdir windsign-temp -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Opening visual studio code"
|
||||
Write-Verbose "Opening Visual Studio Code"
|
||||
code .
|
||||
Write-Host "All done! Press Enter to continue."
|
||||
Read-Host
|
||||
|
||||
|
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 5.9 KiB |
@@ -1 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.9 KiB |
@@ -1 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 500 B |
Before Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 748 B |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 946 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
BIN
configs/branding/release/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
configs/branding/release/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
configs/branding/release/VisualElements_150.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/release/VisualElements_70.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/release/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
1
configs/branding/release/content/about-logo-private.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.h{filter:url(#f);}.i{fill:#202020;}.j{fill:#f2f0e3;}</style><filter id="f" x="-.4" y="1.68" width="256.8" height="256.8" filterUnits="userSpaceOnUse"><feOffset dx="0" dy="2"/><feGaussianBlur result="g" stdDeviation="2"/><feFlood flood-color="#000" flood-opacity=".5"/><feComposite in2="g" operator="in"/><feComposite in="SourceGraphic"/></filter></defs><g class="h"><rect class="i" x="5.75" y="5.7717" width="244.5" height="244.5" rx="46" ry="46"/></g><path class="j" d="M165.9933,146.3748c-15.6335,0-28.7244,11.028-31.9466,25.7088h-12.0935c-3.2222-14.6808-16.313-25.7088-31.9466-25.7088-18.0431,0-32.7232,14.68-32.7232,32.7232s14.68,32.7232,32.7232,32.7232c15.6335,0,28.7244-11.028,31.9466-25.7088h12.0935c3.2222,14.6808,16.313,25.7088,31.9466,25.7088,18.0431,0,32.7232-14.68,32.7232-32.7232s-14.68-32.7232-32.7232-32.7232ZM90.0067,197.7925c-10.3086,0-18.6945-8.3859-18.6945-18.6945s8.3859-18.6945,18.6945-18.6945,18.6945,8.3859,18.6945,18.6945-8.3859,18.6945-18.6945,18.6945ZM165.9933,197.7925c-10.3086,0-18.6945-8.3859-18.6945-18.6945s8.3859-18.6945,18.6945-18.6945,18.6945,8.3859,18.6945,18.6945-8.3859,18.6945-18.6945,18.6945Z"/><path class="j" d="M214.577,115.6777h-21.8838l-9.2611-65.4244c-.3037-2.145-1.5845-4.0301-3.4665-5.1073-1.882-1.0741-4.1554-1.2212-6.1595-.3914l-45.8062,18.9293-45.8062-18.9293c-2.0041-.8298-4.2775-.6826-6.1595.3914-1.882,1.0772-3.1627,2.9623-3.4665,5.1073l-9.2611,65.4244h-21.8838c-3.8735,0-7.0143,3.1408-7.0143,7.0143s3.1408,7.0143,7.0143,7.0143h173.1541c3.8735,0,7.0143-3.1408,7.0143-7.0143s-3.1408-7.0143-7.0143-7.0143ZM85.1906,61.1725l40.1289,16.5839c1.716.7077,3.645.7077,5.361,0l40.1289-16.5839,7.7142,54.5052h-101.0473l7.7142-54.5052Z"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/release/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
configs/branding/release/content/about-logo.png
Normal file
After Width: | Height: | Size: 16 KiB |
12
configs/branding/release/content/about-logo.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_109_1042)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M512 627.385C575.725 627.385 627.385 575.725 627.385 512C627.385 448.275 575.725 396.615 512 396.615C448.275 396.615 396.615 448.275 396.615 512C396.615 575.725 448.275 627.385 512 627.385ZM604.308 512C604.308 562.98 562.98 604.308 512 604.308C461.02 604.308 419.692 562.98 419.692 512C419.692 461.02 461.02 419.692 512 419.692C562.98 419.692 604.308 461.02 604.308 512Z" fill="#F76F53"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M712 512C712 622.457 622.457 712 512 712C401.543 712 312 622.457 312 512C312 401.543 401.543 312 512 312C622.457 312 712 401.543 712 512ZM512 673.538C601.215 673.538 673.538 601.215 673.538 512C673.538 422.785 601.215 350.462 512 350.462C422.785 350.462 350.462 422.785 350.462 512C350.462 601.215 422.785 673.538 512 673.538Z" fill="#F76F53"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M812 512C812 677.685 677.685 812 512 812C346.315 812 212 677.685 212 512C212 346.315 346.315 212 512 212C677.685 212 812 346.315 812 512ZM512 758.154C647.947 758.154 758.154 647.947 758.154 512C758.154 376.053 647.947 265.846 512 265.846C376.053 265.846 265.846 376.053 265.846 512C265.846 647.947 376.053 758.154 512 758.154Z" fill="#F76F53"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_109_1042">
|
||||
<rect width="1024" height="1024" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
BIN
configs/branding/release/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
configs/branding/release/document.ico
Normal file
After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 104 KiB |
BIN
configs/branding/release/firefox.ico
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
configs/branding/release/firefox64.ico
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
configs/branding/release/logo-mac.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
configs/branding/release/logo.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
configs/branding/release/logo1024.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
configs/branding/release/logo128.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
configs/branding/release/logo16.png
Normal file
After Width: | Height: | Size: 699 B |
BIN
configs/branding/release/logo22.png
Normal file
After Width: | Height: | Size: 824 B |
BIN
configs/branding/release/logo24.png
Normal file
After Width: | Height: | Size: 957 B |
BIN
configs/branding/release/logo256.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
configs/branding/release/logo32.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
configs/branding/release/logo48.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/release/logo512.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
configs/branding/release/logo64.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
configs/branding/release/pbmode.ico
Normal file
After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 305 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.0 KiB |
@@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.h{filter:url(#f);}.i{fill:#202020;}.j{fill:#f2f0e3;}</style><filter id="f" x="-.4" y="1.68" width="256.8" height="256.8" filterUnits="userSpaceOnUse"><feOffset dx="0" dy="2"/><feGaussianBlur result="g" stdDeviation="2"/><feFlood flood-color="#000" flood-opacity=".5"/><feComposite in2="g" operator="in"/><feComposite in="SourceGraphic"/></filter></defs><g class="h"><rect class="i" x="5.75" y="5.7717" width="244.5" height="244.5" rx="46" ry="46"/></g><path class="j" d="M165.9933,146.3748c-15.6335,0-28.7244,11.028-31.9466,25.7088h-12.0935c-3.2222-14.6808-16.313-25.7088-31.9466-25.7088-18.0431,0-32.7232,14.68-32.7232,32.7232s14.68,32.7232,32.7232,32.7232c15.6335,0,28.7244-11.028,31.9466-25.7088h12.0935c3.2222,14.6808,16.313,25.7088,31.9466,25.7088,18.0431,0,32.7232-14.68,32.7232-32.7232s-14.68-32.7232-32.7232-32.7232ZM90.0067,197.7925c-10.3086,0-18.6945-8.3859-18.6945-18.6945s8.3859-18.6945,18.6945-18.6945,18.6945,8.3859,18.6945,18.6945-8.3859,18.6945-18.6945,18.6945ZM165.9933,197.7925c-10.3086,0-18.6945-8.3859-18.6945-18.6945s8.3859-18.6945,18.6945-18.6945,18.6945,8.3859,18.6945,18.6945-8.3859,18.6945-18.6945,18.6945Z"/><path class="j" d="M214.577,115.6777h-21.8838l-9.2611-65.4244c-.3037-2.145-1.5845-4.0301-3.4665-5.1073-1.882-1.0741-4.1554-1.2212-6.1595-.3914l-45.8062,18.9293-45.8062-18.9293c-2.0041-.8298-4.2775-.6826-6.1595.3914-1.882,1.0772-3.1627,2.9623-3.4665,5.1073l-9.2611,65.4244h-21.8838c-3.8735,0-7.0143,3.1408-7.0143,7.0143s3.1408,7.0143,7.0143,7.0143h173.1541c3.8735,0,7.0143-3.1408,7.0143-7.0143s-3.1408-7.0143-7.0143-7.0143ZM85.1906,61.1725l40.1289,16.5839c1.716.7077,3.645.7077,5.361,0l40.1289-16.5839,7.7142,54.5052h-101.0473l7.7142-54.5052Z"/></svg>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 16 KiB |
@@ -1 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:url(#e);}.g,.h,.i{stroke-width:0px;}.h{fill:#a570ff;}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity="0"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
||||
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_109_1042)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M512 627.385C575.725 627.385 627.385 575.725 627.385 512C627.385 448.275 575.725 396.615 512 396.615C448.275 396.615 396.615 448.275 396.615 512C396.615 575.725 448.275 627.385 512 627.385ZM604.308 512C604.308 562.98 562.98 604.308 512 604.308C461.02 604.308 419.692 562.98 419.692 512C419.692 461.02 461.02 419.692 512 419.692C562.98 419.692 604.308 461.02 604.308 512Z" fill="#F76F53"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M712 512C712 622.457 622.457 712 512 712C401.543 712 312 622.457 312 512C312 401.543 401.543 312 512 312C622.457 312 712 401.543 712 512ZM512 673.538C601.215 673.538 673.538 601.215 673.538 512C673.538 422.785 601.215 350.462 512 350.462C422.785 350.462 350.462 422.785 350.462 512C350.462 601.215 422.785 673.538 512 673.538Z" fill="#F76F53"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M812 512C812 677.685 677.685 812 512 812C346.315 812 212 677.685 212 512C212 346.315 346.315 212 512 212C677.685 212 812 346.315 812 512ZM512 758.154C647.947 758.154 758.154 647.947 758.154 512C758.154 376.053 647.947 265.846 512 265.846C376.053 265.846 265.846 376.053 265.846 512C265.846 647.947 376.053 758.154 512 758.154Z" fill="#F76F53"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_109_1042">
|
||||
<rect width="1024" height="1024" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 1.8 MiB |