Compare commits
896 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 | ||
![]() |
8f9d2df8db | ||
![]() |
73c7ecf716 | ||
![]() |
8842f099ed | ||
![]() |
6ea43b65d3 | ||
![]() |
c077834553 | ||
![]() |
a35c0fc1a7 | ||
![]() |
37f5756ddb | ||
![]() |
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 | ||
![]() |
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 | ||
![]() |
ea871aaa7b | ||
![]() |
be376ef2ac | ||
![]() |
0b77b93801 | ||
![]() |
9d5ee6291d | ||
![]() |
0476f0d367 | ||
![]() |
4a98a0da86 | ||
![]() |
9cb5e7809a | ||
![]() |
3a22456032 | ||
![]() |
0d609d9e2c | ||
![]() |
555313fc4c | ||
![]() |
8a609505f1 | ||
![]() |
cc0f792e60 | ||
![]() |
9f3e69dbf1 | ||
![]() |
7d42a41df4 | ||
![]() |
f7593002d1 | ||
![]() |
262a7797e7 | ||
![]() |
6364767d5a | ||
![]() |
4d285fe4b6 | ||
![]() |
cde46b77de | ||
![]() |
722ddfb736 | ||
![]() |
155c026e99 | ||
![]() |
44cb7e148b | ||
![]() |
3a517317a3 | ||
![]() |
b32cbe1651 | ||
![]() |
18b0a44ae3 | ||
![]() |
dd68943ae8 | ||
![]() |
f019490989 | ||
![]() |
4ee7fa2af7 | ||
![]() |
032a3f562f | ||
![]() |
9d438035cb | ||
![]() |
7f5d792ff4 | ||
![]() |
5d0c22c374 | ||
![]() |
e7a52289c8 | ||
![]() |
4997786b9f | ||
![]() |
5b51aa2b78 | ||
![]() |
5c565def63 | ||
![]() |
c4502c2762 | ||
![]() |
2ea79db343 | ||
![]() |
c92924db15 | ||
![]() |
45ce804ee9 | ||
![]() |
2e9c147c44 | ||
![]() |
24d09cc134 | ||
![]() |
e7109a0855 | ||
![]() |
b7964f7f12 | ||
![]() |
31bb92c398 | ||
![]() |
d95731e87b | ||
![]() |
bff3c47dc2 | ||
![]() |
94b32c38e4 | ||
![]() |
2214ab3a17 | ||
![]() |
8631adaaec | ||
![]() |
2cfada1fc8 | ||
![]() |
065e82534e | ||
![]() |
a6cbda63b1 | ||
![]() |
15ddd0f680 | ||
![]() |
841261a36e | ||
![]() |
f30a2dc43c | ||
![]() |
37132e8d3e | ||
![]() |
b9dd88e30f | ||
![]() |
e3ec2c22a2 | ||
![]() |
e36dbdead3 | ||
![]() |
4358574889 | ||
![]() |
bbdd6684fe | ||
![]() |
07cd774619 | ||
![]() |
83b077d5f3 | ||
![]() |
36104652cd | ||
![]() |
d75c797553 | ||
![]() |
3fa9e6d5b2 | ||
![]() |
bbb532b5aa | ||
![]() |
15621d76b9 | ||
![]() |
73eb4e3389 | ||
![]() |
3be0eb2ac6 | ||
![]() |
c195b1ecb9 | ||
![]() |
4c265a674e | ||
![]() |
634b4f392a | ||
![]() |
2cca7a8308 | ||
![]() |
ffc584e5e6 | ||
![]() |
9a73aba7fc | ||
![]() |
22adb293f7 | ||
![]() |
e8534e61cd | ||
![]() |
6168e4668c | ||
![]() |
aa0d1c27c8 | ||
![]() |
35859f566b | ||
![]() |
1ad7055fbe | ||
![]() |
2287aa9a06 | ||
![]() |
28d358aa43 | ||
![]() |
8744d1a9ec | ||
![]() |
68f9a32629 | ||
![]() |
2f5062b33e | ||
![]() |
57b624d2da | ||
![]() |
69539728ec | ||
![]() |
92b014a706 | ||
![]() |
a5ace90bd6 | ||
![]() |
8212ca3aee | ||
![]() |
0b9b0a39d8 | ||
![]() |
bcf6dad5de | ||
![]() |
3f0347bc18 | ||
![]() |
b401c225dd | ||
![]() |
721e6ba935 | ||
![]() |
fa342c42fb | ||
![]() |
c31e0d72b3 | ||
![]() |
f672b1b810 | ||
![]() |
4f324c7fd7 | ||
![]() |
0137664296 | ||
![]() |
69313054a2 | ||
![]() |
d6c4c3c66a | ||
![]() |
6d0753c5e9 | ||
![]() |
019efd6db7 | ||
![]() |
4b3d739774 | ||
![]() |
c345b1aa19 | ||
![]() |
d6d4d4a8a3 | ||
![]() |
85017433db | ||
![]() |
d03248c10f | ||
![]() |
b86cf5ac80 | ||
![]() |
abc36b6f9b | ||
![]() |
88fcce18f9 | ||
![]() |
7137481251 | ||
![]() |
842b4929e4 | ||
![]() |
c9a923bb34 | ||
![]() |
d68429b49b | ||
![]() |
38abd9e756 | ||
![]() |
0e35750741 | ||
![]() |
e3ef019995 | ||
![]() |
4486cdc14f | ||
![]() |
c7c453404b | ||
![]() |
546cac2b09 | ||
![]() |
86f537971c | ||
![]() |
4dd5e7c4b9 | ||
![]() |
3b850ae3b9 | ||
![]() |
361932cf7f | ||
![]() |
73f8225669 | ||
![]() |
f6d7170537 | ||
![]() |
35c1139293 | ||
![]() |
590ff474c7 | ||
![]() |
b384e2ee1d | ||
![]() |
6e7a2e4c9e | ||
![]() |
19e07f6785 | ||
![]() |
097f7c846e | ||
![]() |
01d6fdf080 | ||
![]() |
7023e0a800 | ||
![]() |
3ca94633cd | ||
![]() |
ac3e035af7 | ||
![]() |
538fd146fb | ||
![]() |
f1d438f3fd | ||
![]() |
49bb9cd398 | ||
![]() |
7d00a254da | ||
![]() |
ad9ad07cbd | ||
![]() |
598d60ab7e | ||
![]() |
d3f61027c7 | ||
![]() |
8ecbbd0719 | ||
![]() |
17943dcf1a | ||
![]() |
0150e6d689 | ||
![]() |
b5260051a0 | ||
![]() |
b1f17ff508 | ||
![]() |
f4b3f62a46 | ||
![]() |
519cbdd872 | ||
![]() |
28cc158a3f | ||
![]() |
c99bf518b3 | ||
![]() |
86d3244a22 | ||
![]() |
618859788c | ||
![]() |
8008633c02 | ||
![]() |
e840184e7f | ||
![]() |
5aa17208a5 | ||
![]() |
bd7d46f446 | ||
![]() |
013d14d723 | ||
![]() |
b87b9d3e26 | ||
![]() |
bdbce8a7da | ||
![]() |
f661ba7c40 | ||
![]() |
a87dc0346d | ||
![]() |
7470ff5437 | ||
![]() |
fe10ffc7d7 | ||
![]() |
1628b4ca3e | ||
![]() |
74bed8b30a | ||
![]() |
e4287ee7fb | ||
![]() |
71a2646c5b | ||
![]() |
39fbe69847 | ||
![]() |
aa8ef338c5 | ||
![]() |
b9f392da94 | ||
![]() |
40223ee48a | ||
![]() |
0d2ae948e8 | ||
![]() |
7a04307c32 | ||
![]() |
da5ae971e1 | ||
![]() |
d8bbb62081 | ||
![]() |
f5215c1f29 | ||
![]() |
54706e51af | ||
![]() |
2ee66b0b22 | ||
![]() |
2082079c7e | ||
![]() |
0c30803fdd | ||
![]() |
3745de490f | ||
![]() |
cf0e6b8f86 | ||
![]() |
e184e9a97c | ||
![]() |
4cd304b4c6 | ||
![]() |
8bcffb59e6 | ||
![]() |
f2058851d0 | ||
![]() |
3a2ad6e578 | ||
![]() |
45e751a8be | ||
![]() |
6d9e54043c | ||
![]() |
2b68cc481e | ||
![]() |
49f7a457cd | ||
![]() |
c18b3db621 | ||
![]() |
cf450d6d4a | ||
![]() |
93774f17c8 | ||
![]() |
349e8a9203 | ||
![]() |
150f092e9a | ||
![]() |
69020cc516 | ||
![]() |
a01a6d0f43 | ||
![]() |
52a15da966 | ||
![]() |
322d3dcab1 | ||
![]() |
234d05d044 | ||
![]() |
8b7953280a | ||
![]() |
0ba9eb2eeb | ||
![]() |
508a0c7815 | ||
![]() |
264eaa5cbf | ||
![]() |
b4901cb113 | ||
![]() |
4380370ae4 | ||
![]() |
d043ea25d8 | ||
![]() |
dadc13a2df | ||
![]() |
34e47d79dd | ||
![]() |
945ee1245e | ||
![]() |
7f263b4c5e | ||
![]() |
569d93af9a | ||
![]() |
9440716951 | ||
![]() |
cc4e676bb7 | ||
![]() |
9d0eaad314 | ||
![]() |
1d22650d89 | ||
![]() |
ce519530bc | ||
![]() |
3e02f0d39f | ||
![]() |
89b97338e4 | ||
![]() |
2345563879 | ||
![]() |
692cb9223c | ||
![]() |
e8ff848518 | ||
![]() |
256dadbaf7 | ||
![]() |
3e92111847 | ||
![]() |
2e4958bc25 | ||
![]() |
8c04cda18b | ||
![]() |
515b4d50ab | ||
![]() |
414308f277 | ||
![]() |
ffe822819c | ||
![]() |
948cfc4034 | ||
![]() |
fdd99cb8d6 | ||
![]() |
9df773dde2 | ||
![]() |
8c42614427 | ||
![]() |
6dcff571d2 | ||
![]() |
43834e57f0 | ||
![]() |
b185773daf | ||
![]() |
593a9244a4 | ||
![]() |
165ee8a3f8 | ||
![]() |
66fc824bb5 | ||
![]() |
a556454ced | ||
![]() |
d248880890 | ||
![]() |
c9a8177351 | ||
![]() |
5e85f1025a | ||
![]() |
eebcb0cb6e | ||
![]() |
cf3f788218 | ||
![]() |
31f939ba96 | ||
![]() |
b707aabee4 | ||
![]() |
b3e3fdbad7 | ||
![]() |
41897f06ed | ||
![]() |
4758656211 | ||
![]() |
5e1a5fc498 | ||
![]() |
174fafcb45 | ||
![]() |
19fff2bd89 | ||
![]() |
4b1ef1222b | ||
![]() |
46cca21a72 | ||
![]() |
81c2f08e62 | ||
![]() |
2a764eaf7a | ||
![]() |
a1cccb1ca4 | ||
![]() |
d7bff00046 | ||
![]() |
22ef403bd4 | ||
![]() |
e466fb95b5 | ||
![]() |
c5ab69f38d | ||
![]() |
09f673d94c | ||
![]() |
b323a92dbf | ||
![]() |
57f697975e | ||
![]() |
9a9171055c | ||
![]() |
90683aa637 | ||
![]() |
480bcccbf4 | ||
![]() |
015c27ecad | ||
![]() |
1ec4c2ba9d | ||
![]() |
69653bb402 | ||
![]() |
988d5a2535 | ||
![]() |
8de8f190ff | ||
![]() |
ac58a0da0e | ||
![]() |
eb19d2a1c4 | ||
![]() |
36656fd0f4 | ||
![]() |
eb5d10c24a | ||
![]() |
da6101a355 | ||
![]() |
20f6dfafa1 | ||
![]() |
5488980bd9 | ||
![]() |
de92af20f0 | ||
![]() |
f22646a905 | ||
![]() |
44a8bc3f1d | ||
![]() |
a870d7eb42 | ||
![]() |
e429d0317d | ||
![]() |
c8391950cf | ||
![]() |
7cf789ad5f | ||
![]() |
d28062cc93 | ||
![]() |
5d0ea6a2c3 | ||
![]() |
4adde6ba85 | ||
![]() |
e2792eecb5 | ||
![]() |
57bf881779 | ||
![]() |
da8db0f223 | ||
![]() |
e96a40a545 | ||
![]() |
3105024de4 | ||
![]() |
656a47f7c2 | ||
![]() |
742bb67cde | ||
![]() |
88fb4d5e04 | ||
![]() |
28745667b8 | ||
![]() |
bffaa1a94d | ||
![]() |
f5863391fe | ||
![]() |
33531e973b | ||
![]() |
44c784f4a5 | ||
![]() |
7e112746bc | ||
![]() |
f29750da65 | ||
![]() |
3e2157782f | ||
![]() |
6a9aaf1c58 | ||
![]() |
516a388aa3 | ||
![]() |
c968478c3d | ||
![]() |
c14bdf8d26 | ||
![]() |
8bce4eb5f8 | ||
![]() |
2c2c6c6cc2 | ||
![]() |
c41a0ba129 | ||
![]() |
6cb335fe32 | ||
![]() |
605815aa76 | ||
![]() |
cf2734f5e2 | ||
![]() |
1624f05c06 | ||
![]() |
39caaf5caa | ||
![]() |
4310143e79 | ||
![]() |
93159e4514 | ||
![]() |
980dae52d4 | ||
![]() |
bd8501fd77 | ||
![]() |
f8306742e9 | ||
![]() |
aa7b007db7 | ||
![]() |
bf041bd1d6 | ||
![]() |
698b1eab76 | ||
![]() |
81db0458a9 | ||
![]() |
87f76f1cc2 | ||
![]() |
751a0c987d | ||
![]() |
e11688d2a3 | ||
![]() |
73d447eeee | ||
![]() |
3012c0ad1f | ||
![]() |
59f356001a | ||
![]() |
1cfb33afcd | ||
![]() |
3f4f611a61 | ||
![]() |
1bd694514b | ||
![]() |
e3f0ab43bb | ||
![]() |
6469cfa6f4 | ||
![]() |
88f9fc5816 | ||
![]() |
933e192e0c | ||
![]() |
7662707c84 | ||
![]() |
7e894eb4b5 | ||
![]() |
20cef9aabb |
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
|
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.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
name: Zen Alpha builds
|
||||
name: Zen Release builds
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
@@ -13,28 +13,100 @@ on:
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'beta'
|
||||
type: 'choice'
|
||||
options:
|
||||
- 'beta'
|
||||
- 'twilight'
|
||||
workflow_call:
|
||||
inputs:
|
||||
create_release:
|
||||
description: 'Create a new release for this build'
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_version:
|
||||
description: 'Update the version number'
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'beta'
|
||||
type: 'string'
|
||||
|
||||
jobs:
|
||||
debug-inputs:
|
||||
name: Debug inputs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
echo "update_version: ${{ inputs.update_version }}"
|
||||
echo "update_branch: ${{ inputs.update_branch }}"
|
||||
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
check-build-is-correct:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [debug-inputs]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check if correct branch
|
||||
run: |
|
||||
echo "Checking if we are on the correct branch"
|
||||
git branch
|
||||
git status
|
||||
git branch --show-current
|
||||
branch="${{ inputs.update_branch }}"
|
||||
if [[ $branch == "beta" ]]; then
|
||||
branch="stable"
|
||||
elif [[ $branch == "twilight" ]]; then
|
||||
branch="dev"
|
||||
fi
|
||||
if [[ $(git branch --show-current) != $branch ]]; then
|
||||
echo ">>> Branch mismatch"
|
||||
exit 1
|
||||
else
|
||||
echo ">>> Branch matches"
|
||||
fi
|
||||
|
||||
build-data:
|
||||
permissions:
|
||||
contents: write
|
||||
name: Generate build data
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-build-is-correct
|
||||
outputs:
|
||||
build_date: ${{ steps.data.outputs.builddate }}
|
||||
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
|
||||
@@ -44,21 +116,22 @@ 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: ${{ github.event.inputs.update_version == 'true' }}
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'beta' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand alpha --bump prerelease
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||
|
||||
- name: Bump version without new version
|
||||
if: ${{ github.event.inputs.update_version == 'false' }}
|
||||
if: ${{ !inputs.update_version || inputs.update_branch == 'twilight' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand alpha
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }}
|
||||
|
||||
- name: Debug
|
||||
run: |
|
||||
@@ -72,29 +145,32 @@ jobs:
|
||||
run: |
|
||||
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
||||
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
||||
echo "buildtime=$(date +"%H:%M:%S")" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
||||
- 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
|
||||
|
||||
check-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-data]
|
||||
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
|
||||
@@ -104,16 +180,17 @@ 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"
|
||||
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
||||
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
|
||||
run: |
|
||||
@@ -132,24 +209,25 @@ jobs:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-data, check-release]
|
||||
environment: production
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
steps:
|
||||
- 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
|
||||
@@ -159,12 +237,13 @@ 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 alpha --display-version ${{ needs.build-data.outputs.version }}
|
||||
- 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
|
||||
@@ -173,7 +252,6 @@ jobs:
|
||||
- name: Compress
|
||||
run: |
|
||||
cd engine
|
||||
# -h is used to dereference symlinks
|
||||
tar --use-compress-program=zstd -hcf ../zen.source.tar.gz *
|
||||
cd ..
|
||||
|
||||
@@ -185,7 +263,7 @@ jobs:
|
||||
|
||||
windows-step-1:
|
||||
name: Windows build step 1 (PGO build)
|
||||
uses: ./.github/workflows/windows-alpha-build.yml
|
||||
uses: ./.github/workflows/windows-release-build.yml
|
||||
needs: [build-data]
|
||||
permissions:
|
||||
contents: write
|
||||
@@ -193,7 +271,8 @@ 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:
|
||||
name: Windows build step 2 (Generate profile data)
|
||||
@@ -205,10 +284,11 @@ jobs:
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
windows-step-3:
|
||||
name: Windows build step 3 (build with profile data)
|
||||
uses: ./.github/workflows/windows-alpha-build.yml
|
||||
uses: ./.github/workflows/windows-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
@@ -216,64 +296,73 @@ jobs:
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: false
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
linux:
|
||||
name: Linux build
|
||||
uses: ./.github/workflows/linux-alpha-build.yml
|
||||
uses: ./.github/workflows/linux-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
mac:
|
||||
name: macOS build
|
||||
uses: ./.github/workflows/macos-alpha-build.yml
|
||||
uses: ./.github/workflows/macos-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
appimage:
|
||||
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: AppImage build - Linux ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
arch: [x86_64, x86_64-v3, 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
|
||||
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 == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
|
||||
|
||||
- name: Execute AppImage build
|
||||
run: |
|
||||
set -eux
|
||||
rm AppDir/.DirIcon || true
|
||||
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/alpha/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
|
||||
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-beta/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||
fi
|
||||
|
||||
APPDIR=AppDir
|
||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||
@@ -285,112 +374,177 @@ 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 == 'aarch64' && 'aarch64' || '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.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync" \
|
||||
"$APPDIR" zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.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
|
||||
name: zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage
|
||||
path: ./dist/zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.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
|
||||
name: zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync
|
||||
path: ./dist/zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync
|
||||
|
||||
release:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
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]
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: Deploy-Release
|
||||
name: ${{ inputs.update_branch == 'beta' && '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
|
||||
path: updates-server
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download object files
|
||||
run: |
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object
|
||||
|
||||
- name: Copy update manifests
|
||||
env:
|
||||
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||
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_aarch64/. updates/
|
||||
|
||||
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 == 'beta' ]]; 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/
|
||||
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_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
|
||||
|
||||
- name: release-github
|
||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||
# 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@master
|
||||
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 }})'
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-generic.tar.bz2
|
||||
zen.linux-specific.tar.bz2
|
||||
zen.linux-aarch64.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-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
zen.win-generic.zip
|
||||
zen.win-specific.zip
|
||||
zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
linux-aarch64.mar
|
||||
windows-generic.mar
|
||||
windows.mar
|
||||
windows-arm64.mar
|
||||
macos-x86_64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer-generic.exe
|
||||
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 }}
|
||||
env:
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
|
||||
- name: Release
|
||||
uses: marvinpinto/action-automatic-releases@master
|
||||
if: ${{ inputs.update_branch == 'beta' }}
|
||||
with:
|
||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||
prerelease: false
|
||||
title: 'Beta 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.linux-aarch64.tar.bz2
|
||||
zen-generic.AppImage
|
||||
zen-generic.AppImage.zsync
|
||||
zen-specific.AppImage
|
||||
zen-specific.AppImage.zsync
|
||||
zen-aarch64.AppImage
|
||||
zen-aarch64.AppImage.zsync
|
||||
.github/workflows/object/windows-x64-signed-generic/zen.win-generic.zip
|
||||
.github/workflows/object/windows-x64-signed-specific/zen.win-specific.zip
|
||||
.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
linux-aarch64.mar
|
||||
.github/workflows/object/windows-x64-signed-generic/windows-generic.mar
|
||||
.github/workflows/object/windows-x64-signed-specific/windows.mar
|
||||
macos-x64.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-arm64/zen.installer-arm64.exe
|
||||
zen.macos-x86_64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
|
||||
prepare-flatpak:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'beta' }}
|
||||
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
|
||||
@@ -402,18 +556,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
|
||||
@@ -429,51 +584,52 @@ jobs:
|
||||
# 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: ${{ github.event.inputs.create_release == 'true' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'beta' }}
|
||||
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
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download linux generic build
|
||||
- name: Download Linux generic build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-generic.tar.bz2
|
||||
|
||||
- name: Update repo
|
||||
- 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 \
|
||||
@@ -493,14 +649,14 @@ jobs:
|
||||
rm -rf archive.tar
|
||||
rm -rf zen.linux-generic.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
|
||||
|
||||
- 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
|
||||
@@ -516,28 +672,3 @@ jobs:
|
||||
base: master
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
|
||||
release-homebrew:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
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
|
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")
|
||||
|
147
.github/workflows/linux-alpha-build.yml
vendored
@@ -1,147 +0,0 @@
|
||||
name: Linux Alpha Build
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
environment: production
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
name: Build Linux - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
|
||||
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
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
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
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Install sccache
|
||||
env:
|
||||
LINK: https://github.com/mozilla/sccache/releases/download
|
||||
SCCACHE_VERSION: 0.2.13
|
||||
run: |
|
||||
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
||||
mkdir -p $HOME/.local/bin
|
||||
curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
||||
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Save sccache
|
||||
uses: actions/cache@v3
|
||||
continue-on-error: false
|
||||
with:
|
||||
path: /home/runner/.cache/sccache
|
||||
key: ${{ runner.os }}-sccache
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
./mach --no-interactive bootstrap --application-choice browser
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
continue-on-error: true
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: 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
|
||||
|
||||
- name: Upload 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
|
||||
|
||||
- name: Upload mar
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: ./dist/update
|
169
.github/workflows/linux-release-build.yml
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
name: Linux Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64, x86_64-v3, aarch64]
|
||||
name: Build Linux - ${{ matrix.arch == 'x86_64' && 'Generic' || matrix.arch == 'x86_64-v3' && 'Specific' || matrix.arch == 'aarch64' && 'aarch64' }}
|
||||
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
tool-cache: false
|
||||
|
||||
- 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: Setup Git
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
set -x
|
||||
sudo apt-get update --fix-missing
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y 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
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
|
||||
- name: Setup sccache
|
||||
env:
|
||||
LINK: https://github.com/mozilla/sccache/releases/download
|
||||
SCCACHE_VERSION: 0.2.13
|
||||
run: |
|
||||
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
||||
mkdir -p $HOME/.local/bin
|
||||
curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
||||
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Save sccache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /home/runner/.cache/sccache
|
||||
key: ${{ runner.os }}-sccache
|
||||
|
||||
- name: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Get pnpm store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
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 dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- 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.arch }}
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="linux"
|
||||
./mach --no-interactive bootstrap --application-choice browser
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="linux"
|
||||
pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2"
|
||||
mv dist/output.mar linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
|
||||
- name: Upload build artifact (binary)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
|
||||
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
path: ./linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
|
||||
|
||||
- name: Upload build artifact (update manifests)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux_update_manifest_${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}
|
||||
path: ./dist/update
|
@@ -1,4 +1,5 @@
|
||||
name: macOS Alpha Build
|
||||
name: macOS Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -6,76 +7,77 @@ on:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
environment: production
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: macos-14
|
||||
|
||||
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"
|
||||
|
||||
- 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
|
||||
|
||||
- name: Force usage fo gnu-tar
|
||||
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-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
|
||||
@@ -85,52 +87,58 @@ jobs:
|
||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Download firefox source and dependancies
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- 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 }}
|
||||
run: |
|
||||
if test "${{ matrix.arch }}" = "x64"; then
|
||||
export SURFER_PLATFORM="darwin"
|
||||
if test "${{ matrix.arch }}" = "x86_64"; then
|
||||
export ZEN_DISABLE_LTO=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Rebuild Zen if failed
|
||||
if: failure()
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
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: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
|
||||
pnpm package
|
||||
|
||||
@@ -138,7 +146,7 @@ jobs:
|
||||
run: |
|
||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Sign to .dmg
|
||||
- name: Sign .dmg
|
||||
run: |
|
||||
set -ex
|
||||
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||
@@ -151,19 +159,33 @@ jobs:
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||
|
||||
- name: Upload artifact
|
||||
- name: Sign .dmg again if failed
|
||||
if: failure()
|
||||
run: |
|
||||
set -ex
|
||||
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||
xattr -cr zen.macos-${{ matrix.arch }}.dmg
|
||||
codesign -s "${{ secrets.macOS_AppleDeveloperId }}" zen.macos-${{ matrix.arch }}.dmg
|
||||
xcrun notarytool submit "zen.macos-${{ matrix.arch }}.dmg" \
|
||||
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||
--wait
|
||||
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||
|
||||
- name: Upload build artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
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:
|
||||
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:
|
||||
name: macos_update_manifest_${{ matrix.arch }}
|
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
|
||||
</update>
|
||||
</updates>
|
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
|
||||
</update>
|
||||
</updates>
|
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
|
||||
</update>
|
||||
</updates>
|
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
|
||||
</update>
|
||||
</updates>
|
32
.github/workflows/pr-test.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Pull request test
|
||||
|
||||
on:
|
||||
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 pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Install Surfer
|
||||
run: npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
run: surfer download
|
||||
|
||||
- name: Import patches
|
||||
run: surfer i
|
@@ -1,14 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
if command -v apt-get &> /dev/null
|
||||
then
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb
|
||||
fi
|
||||
|
||||
ulimit -n 4096
|
||||
|
||||
# Check if xfvb is installed
|
||||
if ! command -v Xvfb &> /dev/null; then
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
Xvfb :2 -screen 0 1024x768x24 &
|
||||
@@ -16,10 +16,11 @@ if ! command -v Xvfb &> /dev/null; then
|
||||
export DISPLAY=:2
|
||||
fi
|
||||
export ZEN_RELEASE=1
|
||||
pnpm build
|
||||
pnpm build
|
||||
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
|
29
.github/workflows/stale.yml
vendored
@@ -1,29 +0,0 @@
|
||||
name: Close inactive issues
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
close-issues:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/stale@v5
|
||||
with:
|
||||
days-before-issue-stale: 30
|
||||
days-before-issue-close: 14
|
||||
stale-issue-label: 'stale'
|
||||
stale-issue-message: |
|
||||
This issue is stale because it has been open for 30 days with no activity.
|
||||
|
||||
Please close this issue if you feel it is no longer relevant, or comment if you have more information to share.
|
||||
close-issue-message: |
|
||||
This issue was closed because it has been inactive for 14 days since being marked as stale.
|
||||
|
||||
If you think this issue should remain open, please comment with a request for it to be re-opened or open a new issue.
|
||||
days-before-pr-stale: -1
|
||||
days-before-pr-close: -1
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
32
.github/workflows/twilight-release-schedule.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Zen Twilight Scheduled Releases
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
name: Twilight Release Schedule
|
||||
permissions: write-all
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/build.yml
|
||||
with:
|
||||
create_release: true
|
||||
update_branch: twilight
|
||||
update_version: false
|
||||
|
||||
post-build:
|
||||
name: Post Build
|
||||
runs-on: ubuntu-latest
|
||||
needs: twilight-release-schedule
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
# TODO:
|
31
.github/workflows/update-submodules.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Update Components Submodules
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
workflow_dispatch:
|
||||
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@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Update submodules
|
||||
run: |
|
||||
git submodule update --remote --merge
|
||||
|
||||
- name: Commit
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "[skip ci] 📦 Update submodules"
|
||||
commit_user_name: Zen Browser Robot
|
||||
commit_user_email: zen-browser-auto@users.noreply.github.com
|
219
.github/workflows/windows-alpha-build.yml
vendored
@@ -1,219 +0,0 @@
|
||||
name: Windows Alpha Build
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
generate-gpo:
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
profile-data-path-archive:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
name: Build Windows - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
environment: production
|
||||
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 and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- 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
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: 'win-cross Cache'
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${HOME}/win-cross
|
||||
key: win-cross
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
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'
|
||||
run: |
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
cargo install cargo-download
|
||||
cargo download -x windows=0.52.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.52.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact if use profdata
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
path: ~/artifact
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
|
||||
- name: Show artifact info
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
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
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: |
|
||||
set -x
|
||||
dos2unix configs/windows/mozconfig
|
||||
export SURFER_PLATFORM="win32"
|
||||
export ZEN_CROSS_COMPILING=1
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: |
|
||||
set -x
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm package
|
||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
|
||||
ls ./dist
|
||||
ls .
|
||||
|
||||
- name: 🐛 Debug Session
|
||||
if: ${{ failure() }}
|
||||
uses: Warpbuilds/gha-debug@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- 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
|
||||
|
||||
- name: Upload PGO build
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
with:
|
||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||
path: ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- name: Remove symlinks from obj folder
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -type l -delete
|
||||
|
||||
- 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/
|
||||
|
66
.github/workflows/windows-profile-build.yml
vendored
@@ -1,4 +1,5 @@
|
||||
name: Windows PGO Builds
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -10,40 +11,51 @@ on:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
required: false
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
windows-profile-build:
|
||||
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: |
|
||||
Windows Profile Build - ${{ matrix.arch == 'x86_64' && 'generic' ||
|
||||
matrix.arch == 'x86_64-v3' && 'specific' ||
|
||||
matrix.arch == 'aarch64' && 'arm64' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
arch: [x86_64, x86_64-v3, aarch64]
|
||||
|
||||
runs-on: windows-latest
|
||||
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
|
||||
|
||||
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: Download artifact
|
||||
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 == 'x86_64' && 'generic' ||
|
||||
matrix.arch == 'x86_64-v3' && 'specific' ||
|
||||
matrix.arch == 'aarch64' && 'generic' }}-zen-windows-profile-data-and-jarlog.zip
|
||||
|
||||
- name: Unpack artifact
|
||||
run: |
|
||||
@@ -51,19 +63,27 @@ jobs:
|
||||
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")
|
||||
(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
|
||||
run: |
|
||||
git config --global core.safecrlf false
|
||||
git config --global core.safecrlf false
|
||||
pnpm surfer download
|
||||
|
||||
- name: Import patches
|
||||
env:
|
||||
SURFER_NO_BRANDING_PATCH: true
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Generate
|
||||
run: |
|
||||
ls
|
||||
$Env:USE_MINTTY = "0"
|
||||
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\","/"
|
||||
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
||||
$workspace_dir = $workspace_dir_current + "/engine"
|
||||
echo $workspace_dir
|
||||
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||
@@ -73,9 +93,9 @@ 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
|
||||
@@ -85,10 +105,12 @@ jobs:
|
||||
mv engine/merged.profdata merged.profdata
|
||||
mv engine/en-US.log en-US.log
|
||||
|
||||
- name: Publish artifacts
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: |
|
||||
merged.profdata
|
||||
en-US.log
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
name: windows-profdata-${{ matrix.arch == 'x86_64' && 'generic' ||
|
||||
matrix.arch == 'x86_64-v3' && 'specific' ||
|
||||
matrix.arch == 'aarch64' && 'arm64' }}
|
||||
|
249
.github/workflows/windows-release-build.yml
vendored
Normal file
@@ -0,0 +1,249 @@
|
||||
name: Windows Release Build
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
generate-gpo:
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
build-version:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
profile-data-path-archive:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
name: Build Windows - ${{ matrix.arch == 'x86_64' && 'Generic' || matrix.arch == 'x86_64-v3' && 'Specific' || matrix.arch == 'aarch64' && 'ARM64' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arch: [x86_64, x86_64-v3, aarch64]
|
||||
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
tool-cache: false
|
||||
|
||||
- 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: Setup pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- 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 install
|
||||
|
||||
- name: Load Surfer CI setup
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download Firefox and dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: win-cross Cache
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${HOME}/win-cross
|
||||
key: win-cross
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
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'
|
||||
run: |
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
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
|
||||
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
|
||||
run: |
|
||||
cd engine/
|
||||
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
|
||||
export CARGO_INCREMENTAL=0
|
||||
echo "" >> ../configs/common/mozconfig
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Download artifact (if use profdata)
|
||||
uses: actions/download-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
path: ~/artifact
|
||||
name: windows-profdata-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
|
||||
|
||||
- name: Show artifact info
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
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
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
set -x
|
||||
dos2unix configs/windows/mozconfig
|
||||
export SURFER_PLATFORM="win32"
|
||||
export ZEN_CROSS_COMPILING=1
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: |
|
||||
set -x
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm package
|
||||
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
|
||||
if: ${{ failure() }}
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- name: Rename artifacts
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
mv ./zen.win64.zip zen.win-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
|
||||
mv ./dist/output.mar windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
|
||||
- name: Upload artifact (PGO)
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
with:
|
||||
name: ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}-${{ 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.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
|
||||
path: engine/obj-${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }}-pc-windows-msvc/
|
||||
|
||||
- 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.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
|
||||
path: ./zen.win-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
|
||||
|
||||
- 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.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
path: ./zen.installer${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
|
||||
|
||||
- name: Upload artifact (if Twilight branch, .mar)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
path: ./windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
|
||||
|
||||
- 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.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
|
||||
path: ./dist/update
|
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
.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-beta
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
|
@@ -1 +1 @@
|
||||
* @mauro-balades
|
||||
* @mr-cheff
|
||||
|
128
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
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,
|
||||
and learning from the experience
|
||||
* 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
|
||||
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
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
hello@zen-browser.app.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
166
README.md
@@ -1,64 +1,68 @@
|
||||
<div align="center">
|
||||
<picture>
|
||||
<img src="./docs/assets/zen-black.svg" width="128px">
|
||||
</picture>
|
||||
</div>
|
||||
<h1 align="center">
|
||||
Zen Browser
|
||||
</h1>
|
||||
<img src="./docs/assets/zen-dark.svg" width="100px" align="left">
|
||||
|
||||
Experience tranquillity while browsing the web without people tracking you!
|
||||
|
||||
- [Website](https://zen-browser.app)
|
||||
- [Download](https://zen-browser.app/download)
|
||||
- [Release Notes](https://zen-browser.app/release-notes/latest)
|
||||
### `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)
|
||||
|
||||
[](https://flathub.org/apps/io.github.zen_browser.zen)
|
||||
|
||||
[](https://www.patreon.com/zen_browser)
|
||||
✨ 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!
|
||||
|
||||
[](https://ko-fi.com/zen_browser)
|
||||
<div flex="true">
|
||||
<a href="https://zen-browser.app/download">
|
||||
Download
|
||||
</a>
|
||||
•
|
||||
<a href="https://zen-browser.app">
|
||||
Website
|
||||
</a>
|
||||
•
|
||||
<a href="https://docs.zen-browser.app">
|
||||
Documentation
|
||||
</a>
|
||||
•
|
||||
<a href="https://zen-browser.app/release-notes/latest">
|
||||
Release Notes
|
||||
</a>
|
||||
</div>
|
||||
|
||||
# Compatibility
|
||||
## 🖥️ Compatibility
|
||||
|
||||
Zen is currently built using firefox version `130.0`!
|
||||
Zen is currently built using firefox version `133.0.3`! 🚀
|
||||
|
||||
- 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!
|
||||
|
||||
# Performance
|
||||
## 🤝 Contribution
|
||||
|
||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
|
||||
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!
|
||||
|
||||
- Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||
## ⚡ Performance
|
||||
|
||||
# Installation
|
||||
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)!
|
||||
|
||||
## Supported Operating Systems
|
||||
## 📥 Installation
|
||||
|
||||
### Supported Operating Systems
|
||||
|
||||
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
||||
|
||||
### Windows
|
||||
If you dont see your OS listed below, that's because we already have it in our [downloads page](https://zen-browser.app/download)! Make sure to check it out!
|
||||
|
||||
#### Winget
|
||||
#### Windows
|
||||
|
||||
- Generic
|
||||
##### Winget
|
||||
|
||||
```
|
||||
```ps
|
||||
# Generic version
|
||||
winget install --id Zen-Team.Zen-Browser
|
||||
```
|
||||
|
||||
- Optimized
|
||||
|
||||
```
|
||||
# Optimized version
|
||||
winget install --id Zen-Team.Zen-Browser.Optimized
|
||||
```
|
||||
|
||||
####
|
||||
|
||||
### macOS
|
||||
#### macOS
|
||||
|
||||
- Requires macOS 10.15 or later
|
||||
- Available for ARM and Intel architectures
|
||||
@@ -69,88 +73,64 @@ You can also install Zen using Homebrew:
|
||||
brew install --cask zen-browser
|
||||
```
|
||||
|
||||
### Linux
|
||||
#### Linux
|
||||
|
||||
#### AppImage
|
||||
##### 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)
|
||||
```
|
||||
|
||||
#### Flatpak
|
||||
```
|
||||
flatpak install flathub io.github.zen_browser.zen
|
||||
```
|
||||
* 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`.
|
||||
|
||||
# Core Components
|
||||
## 👨💻 Development and Contributing
|
||||
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place. 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
|
||||
#### `Run Locally`
|
||||
|
||||
Clone the project
|
||||
In order to download and run zen locally, please follow [these instructions](https://docs.zen-browser.app/contribute/desktop).
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zen-browser/desktop.git --recurse-submodules
|
||||
cd desktop
|
||||
```
|
||||
#### `Special Thanks`
|
||||
|
||||
Install dependencies
|
||||
Special thanks to... EVERYONE 🎉! Checkout the team and contributors page [here](https://zen-browser.app/about)
|
||||
|
||||
```bash
|
||||
npm i
|
||||
```
|
||||
#### `Third Party Code`
|
||||
|
||||
Download and bootstrap the browser
|
||||
|
||||
```
|
||||
npm run init
|
||||
```
|
||||
|
||||
Copy a language pack
|
||||
```
|
||||
sh scripts/update-en-US-packs.sh
|
||||
```
|
||||
|
||||
Start building the browser
|
||||
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
Finally, run the browser!
|
||||
|
||||
```
|
||||
npm start
|
||||
```
|
||||
|
||||
## Special Thanks
|
||||
|
||||
- [IAmJafeth](https://github.com/IAmJafeth) (For sponsoring the domain)
|
||||
- [Donno 🐒](https://www.onnno.nl/) (For making the logo)
|
||||
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
|
||||
- [nitro](https://github.com/n7itro) (For the amazing work on the browser)
|
||||
|
||||
## Third Party Code
|
||||
|
||||
Zen couldn't be in its current state without the help of these amazing projects!
|
||||
Zen couldn't be in its current state without the help of these amazing projects! 🙏
|
||||
|
||||
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
||||
- Gradient image extracted from [Arc Palette](https://github.com/neurokitti/Arc_Palette)
|
||||
|
||||
## License
|
||||
### 🖥️ Comparison with other browsers
|
||||
|
||||
[MPL LICENSE](./LICENSE)
|
||||
|
||||
## Star History
|
||||
As you can see, chromium based browsers are the most popular browsers, help us change that by starring the project and spreading the word! 🌟
|
||||
|
||||
<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&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||
<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>
|
||||
|
||||
## 📄 License
|
||||
|
||||
Zen browser is under the [MPL LICENSE](./LICENSE). All the code is open-source and free to use! Attributions are appreciated but not required.
|
||||
|
@@ -50,11 +50,11 @@ if [ ! -x ${SWVERS} ]; then
|
||||
fi
|
||||
|
||||
# Require macOS 10.14 or newer.
|
||||
OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
||||
if [ ${OSVERSION} \< 14 ]; then
|
||||
echo "ERROR: macOS 10.14 or later is required"
|
||||
exit -1
|
||||
fi
|
||||
#OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
||||
#if [ ${OSVERSION} \< 14 ]; then
|
||||
# echo "ERROR: macOS 10.14 or later is required"
|
||||
# exit -1
|
||||
#fi
|
||||
|
||||
while getopts "a:i:b:o:p:" opt; do
|
||||
case ${opt} in
|
||||
|
@@ -1,5 +1,6 @@
|
||||
param(
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity,
|
||||
[string][Parameter(Mandatory=$true)]$GithubRunId
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
@@ -8,15 +9,29 @@ echo "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Please UNZIP the generic and specific artifacts into windsign-temp"
|
||||
echo "With the following filenames:"
|
||||
echo " - $pwd\windsign-temp\windows-x64-obj-specific"
|
||||
echo " - $pwd\windsign-temp\windows-x64-obj-generic"
|
||||
Read-Host "Press Enter to continue when ready"
|
||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||
mkdir .\.github\workflows\object\ -ErrorAction SilentlyContinue
|
||||
# Download in parallel
|
||||
|
||||
pnpm surfer ci --brand alpha
|
||||
#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-arm64 -D windsign-temp\windows-x64-obj-arm64
|
||||
echo "Downloaded arm64 artifacts"
|
||||
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 beta
|
||||
|
||||
function SignAndPackage($name) {
|
||||
echo "Executing on $name"
|
||||
@@ -34,9 +49,13 @@ function SignAndPackage($name) {
|
||||
$env:SURFER_SIGNING_MODE="sign"
|
||||
$env:MAR="$PWD\\build\\winsign\\mar.exe"
|
||||
if ($name -eq "generic") {
|
||||
$env:SURFER_COMPAT="true"
|
||||
$env:SURFER_COMPAT="x86_64"
|
||||
} else {
|
||||
rm env:SURFER_COMPAT -ErrorAction SilentlyContinue
|
||||
if ($name -eq "arm64") {
|
||||
$env:SURFER_COMPAT="aarch64"
|
||||
} else {
|
||||
$env:SURFER_COMPAT="x86_64-v3"
|
||||
}
|
||||
}
|
||||
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
@@ -53,23 +72,30 @@ function SignAndPackage($name) {
|
||||
echo "Creating tar for $name"
|
||||
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mkdir windsign-temp\windows-x64-signed-$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
|
||||
echo "Moving MAR for $name"
|
||||
if ($name -eq "generic" -or $name -eq "arm64") {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows-$name.mar
|
||||
} else {
|
||||
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows.mar
|
||||
}
|
||||
|
||||
# Move the installer
|
||||
if ($name -eq "generic") {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-generic.exe
|
||||
echo "Moving installer for $name"
|
||||
if ($name -eq "generic" -or $name -eq "arm64") {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-$name.exe
|
||||
} else {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||
}
|
||||
|
||||
# Move the zip
|
||||
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
echo "Moving zip for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv (Get-Item .\dist\*.en-US.win64-aarch64.zip) windsign-temp\windows-x64-signed-$name\zen.win-arm64.zip
|
||||
} else {
|
||||
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
}
|
||||
|
||||
# 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
|
||||
@@ -85,20 +111,23 @@ function SignAndPackage($name) {
|
||||
|
||||
echo "Invoking tar for $name"
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\.github\workflows\object\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv .\windsign-temp\windows-x64-signed-$name .\.github\workflows\object\windows-x64-signed-$name -Force
|
||||
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 arm64
|
||||
SignAndPackage specific
|
||||
SignAndPackage generic
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
git add .\.github\workflows\object
|
||||
cd windsign-temp\windows-binaries
|
||||
git add .
|
||||
git commit -m "Sign and package windows artifacts"
|
||||
git push
|
||||
cd ..\..
|
||||
|
||||
# Cleaning up
|
||||
|
||||
@@ -106,8 +135,10 @@ 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 "Cleaning up"
|
||||
rmdir windsign-temp\windows-x64-obj-specific -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir windsign-temp\windows-x64-obj-generic -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir windsign-temp\windows-x64-obj-arm64 -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Opening visual studio code"
|
||||
code .
|
||||
|
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 3.1 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.8 KiB |
@@ -1 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{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><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B |
BIN
configs/branding/beta/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
configs/branding/beta/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
configs/branding/beta/VisualElements_150.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/beta/VisualElements_70.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/beta/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
1
configs/branding/beta/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/beta/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
configs/branding/beta/content/about-logo.png
Normal file
After Width: | Height: | Size: 16 KiB |
12
configs/branding/beta/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/beta/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/beta/document.ico
Normal file
After Width: | Height: | Size: 105 KiB |
BIN
configs/branding/beta/document_pdf.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
configs/branding/beta/firefox.ico
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
configs/branding/beta/firefox64.ico
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
configs/branding/beta/logo-mac.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
configs/branding/beta/logo.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
configs/branding/beta/logo1024.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
configs/branding/beta/logo128.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
configs/branding/beta/logo16.png
Normal file
After Width: | Height: | Size: 699 B |
BIN
configs/branding/beta/logo22.png
Normal file
After Width: | Height: | Size: 824 B |
BIN
configs/branding/beta/logo24.png
Normal file
After Width: | Height: | Size: 957 B |
BIN
configs/branding/beta/logo256.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
configs/branding/beta/logo32.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
configs/branding/beta/logo48.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/beta/logo512.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
configs/branding/beta/logo64.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
configs/branding/beta/pbmode.ico
Normal file
After Width: | Height: | Size: 106 KiB |
1
configs/branding/twilight/MacOSInstaller.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />Sorry, your browser does not support inline SVG.</svg>
|
After Width: | Height: | Size: 219 B |
BIN
configs/branding/twilight/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
configs/branding/twilight/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
configs/branding/twilight/VisualElements_150.png
Normal file
After Width: | Height: | Size: 305 KiB |
BIN
configs/branding/twilight/VisualElements_70.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
configs/branding/twilight/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
1
configs/branding/twilight/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/twilight/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
configs/branding/twilight/content/about-logo.png
Normal file
After Width: | Height: | Size: 16 KiB |