X Tutup
Skip to content

Commit 09f9c95

Browse files
miniakJohn Kleinschmidt
authored andcommitted
ci: add check for dist zip file changes (electron#19175)
1 parent 768b4c9 commit 09f9c95

13 files changed

+1012
-1
lines changed

.circleci/config.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ env-debug-build: &env-debug-build
3535

3636
env-testing-build: &env-testing-build
3737
GN_CONFIG: //electron/build/args/testing.gn
38+
CHECK_DIST_MANIFEST: '1'
3839

3940
env-release-build: &env-release-build
4041
GN_CONFIG: //electron/build/args/release.gn
@@ -253,6 +254,28 @@ step-electron-dist-build: &step-electron-dist-build
253254
command: |
254255
cd src
255256
ninja -C out/Default electron:electron_dist_zip
257+
if [ "$CHECK_DIST_MANIFEST" == "1" ]; then
258+
if [ "`uname`" == "Darwin" ]; then
259+
target_os=mac
260+
target_cpu=x64
261+
if [ x"$MAS_BUILD" == x"true" ]; then
262+
target_os=mac_mas
263+
fi
264+
elif [ "`uname`" == "Linux" ]; then
265+
target_os=linux
266+
if [ x"$TARGET_ARCH" == x ]; then
267+
target_cpu=x64
268+
elif [ "$TARGET_ARCH" == "ia32" ]; then
269+
target_cpu=x86
270+
else
271+
target_cpu="$TARGET_ARCH"
272+
fi
273+
else
274+
echo "Unknown system: `uname`"
275+
exit 1
276+
fi
277+
electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.$target_os.$target_cpu.manifest
278+
fi
256279
257280
step-electron-dist-store: &step-electron-dist-store
258281
store_artifacts:

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ build_script:
7777
python electron\script\zip-symbols.py
7878
appveyor PushArtifact out/Default/symbols.zip
7979
}
80+
- python electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.win.%TARGET_ARCH%.manifest
8081
test_script:
8182
- ps: >-
8283
if ((-Not (Test-Path Env:\ELECTRON_RELEASE)) -And ($env:GN_CONFIG -in "testing", "release")) {

build/zip.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import zipfile
66

77
EXTENSIONS_TO_SKIP = [
8-
'.pdb'
8+
'.pdb',
9+
'.mojom.externs.js',
10+
'.mojom.js',
911
]
1012

1113
PATHS_TO_SKIP = [

script/generate-zip-manifest.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env python
2+
3+
import zipfile
4+
import sys
5+
6+
def main(zip_path, manifest_out):
7+
with open(manifest_out, 'w') as manifest, \
8+
zipfile.ZipFile(zip_path, 'r', allowZip64=True) as z:
9+
for name in sorted(z.namelist()):
10+
manifest.write(name + '\n')
11+
return 0
12+
13+
if __name__ == '__main__':
14+
sys.exit(main(*sys.argv[1:]))
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env python
2+
3+
import zipfile
4+
import sys
5+
6+
def main(zip_path, manifest_in):
7+
with open(manifest_in, 'r') as manifest, \
8+
zipfile.ZipFile(zip_path, 'r', allowZip64=True) as z:
9+
files_in_zip = set(z.namelist())
10+
files_in_manifest = set([l.strip() for l in manifest.readlines()])
11+
added_files = files_in_zip - files_in_manifest
12+
removed_files = files_in_manifest - files_in_zip
13+
if added_files:
14+
print("Files added to bundle:")
15+
for f in sorted(list(added_files)):
16+
print('+' + f)
17+
if removed_files:
18+
print("Files removed from bundle:")
19+
for f in sorted(list(removed_files)):
20+
print('-' + f)
21+
if added_files or removed_files:
22+
return 1
23+
else:
24+
return 0
25+
26+
if __name__ == '__main__':
27+
sys.exit(main(*sys.argv[1:]))
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
LICENSE
2+
LICENSES.chromium.html
3+
chrome_100_percent.pak
4+
chrome_200_percent.pak
5+
electron
6+
icudtl.dat
7+
libEGL.so
8+
libGLESv2.so
9+
libffmpeg.so
10+
locales/am.pak
11+
locales/ar.pak
12+
locales/bg.pak
13+
locales/bn.pak
14+
locales/ca.pak
15+
locales/cs.pak
16+
locales/da.pak
17+
locales/de.pak
18+
locales/el.pak
19+
locales/en-GB.pak
20+
locales/en-US.pak
21+
locales/es-419.pak
22+
locales/es.pak
23+
locales/et.pak
24+
locales/fa.pak
25+
locales/fi.pak
26+
locales/fil.pak
27+
locales/fr.pak
28+
locales/gu.pak
29+
locales/he.pak
30+
locales/hi.pak
31+
locales/hr.pak
32+
locales/hu.pak
33+
locales/id.pak
34+
locales/it.pak
35+
locales/ja.pak
36+
locales/kn.pak
37+
locales/ko.pak
38+
locales/lt.pak
39+
locales/lv.pak
40+
locales/ml.pak
41+
locales/mr.pak
42+
locales/ms.pak
43+
locales/nb.pak
44+
locales/nl.pak
45+
locales/pl.pak
46+
locales/pt-BR.pak
47+
locales/pt-PT.pak
48+
locales/ro.pak
49+
locales/ru.pak
50+
locales/sk.pak
51+
locales/sl.pak
52+
locales/sr.pak
53+
locales/sv.pak
54+
locales/sw.pak
55+
locales/ta.pak
56+
locales/te.pak
57+
locales/th.pak
58+
locales/tr.pak
59+
locales/uk.pak
60+
locales/vi.pak
61+
locales/zh-CN.pak
62+
locales/zh-TW.pak
63+
natives_blob.bin
64+
resources.pak
65+
resources/default_app.asar
66+
resources/electron.asar
67+
snapshot_blob.bin
68+
v8_context_snapshot.bin
69+
version
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
LICENSE
2+
LICENSES.chromium.html
3+
chrome_100_percent.pak
4+
chrome_200_percent.pak
5+
electron
6+
icudtl.dat
7+
libEGL.so
8+
libGLESv2.so
9+
libffmpeg.so
10+
locales/am.pak
11+
locales/ar.pak
12+
locales/bg.pak
13+
locales/bn.pak
14+
locales/ca.pak
15+
locales/cs.pak
16+
locales/da.pak
17+
locales/de.pak
18+
locales/el.pak
19+
locales/en-GB.pak
20+
locales/en-US.pak
21+
locales/es-419.pak
22+
locales/es.pak
23+
locales/et.pak
24+
locales/fa.pak
25+
locales/fi.pak
26+
locales/fil.pak
27+
locales/fr.pak
28+
locales/gu.pak
29+
locales/he.pak
30+
locales/hi.pak
31+
locales/hr.pak
32+
locales/hu.pak
33+
locales/id.pak
34+
locales/it.pak
35+
locales/ja.pak
36+
locales/kn.pak
37+
locales/ko.pak
38+
locales/lt.pak
39+
locales/lv.pak
40+
locales/ml.pak
41+
locales/mr.pak
42+
locales/ms.pak
43+
locales/nb.pak
44+
locales/nl.pak
45+
locales/pl.pak
46+
locales/pt-BR.pak
47+
locales/pt-PT.pak
48+
locales/ro.pak
49+
locales/ru.pak
50+
locales/sk.pak
51+
locales/sl.pak
52+
locales/sr.pak
53+
locales/sv.pak
54+
locales/sw.pak
55+
locales/ta.pak
56+
locales/te.pak
57+
locales/th.pak
58+
locales/tr.pak
59+
locales/uk.pak
60+
locales/vi.pak
61+
locales/zh-CN.pak
62+
locales/zh-TW.pak
63+
natives_blob.bin
64+
resources.pak
65+
resources/default_app.asar
66+
resources/electron.asar
67+
snapshot_blob.bin
68+
v8_context_snapshot.bin
69+
version
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
LICENSE
2+
LICENSES.chromium.html
3+
chrome_100_percent.pak
4+
chrome_200_percent.pak
5+
electron
6+
icudtl.dat
7+
libEGL.so
8+
libGLESv2.so
9+
libffmpeg.so
10+
locales/am.pak
11+
locales/ar.pak
12+
locales/bg.pak
13+
locales/bn.pak
14+
locales/ca.pak
15+
locales/cs.pak
16+
locales/da.pak
17+
locales/de.pak
18+
locales/el.pak
19+
locales/en-GB.pak
20+
locales/en-US.pak
21+
locales/es-419.pak
22+
locales/es.pak
23+
locales/et.pak
24+
locales/fa.pak
25+
locales/fi.pak
26+
locales/fil.pak
27+
locales/fr.pak
28+
locales/gu.pak
29+
locales/he.pak
30+
locales/hi.pak
31+
locales/hr.pak
32+
locales/hu.pak
33+
locales/id.pak
34+
locales/it.pak
35+
locales/ja.pak
36+
locales/kn.pak
37+
locales/ko.pak
38+
locales/lt.pak
39+
locales/lv.pak
40+
locales/ml.pak
41+
locales/mr.pak
42+
locales/ms.pak
43+
locales/nb.pak
44+
locales/nl.pak
45+
locales/pl.pak
46+
locales/pt-BR.pak
47+
locales/pt-PT.pak
48+
locales/ro.pak
49+
locales/ru.pak
50+
locales/sk.pak
51+
locales/sl.pak
52+
locales/sr.pak
53+
locales/sv.pak
54+
locales/sw.pak
55+
locales/ta.pak
56+
locales/te.pak
57+
locales/th.pak
58+
locales/tr.pak
59+
locales/uk.pak
60+
locales/vi.pak
61+
locales/zh-CN.pak
62+
locales/zh-TW.pak
63+
natives_blob.bin
64+
resources.pak
65+
resources/default_app.asar
66+
resources/electron.asar
67+
snapshot_blob.bin
68+
swiftshader/libEGL.so
69+
swiftshader/libGLESv2.so
70+
v8_context_snapshot.bin
71+
version
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
LICENSE
2+
LICENSES.chromium.html
3+
chrome_100_percent.pak
4+
chrome_200_percent.pak
5+
electron
6+
icudtl.dat
7+
libEGL.so
8+
libGLESv2.so
9+
libffmpeg.so
10+
locales/am.pak
11+
locales/ar.pak
12+
locales/bg.pak
13+
locales/bn.pak
14+
locales/ca.pak
15+
locales/cs.pak
16+
locales/da.pak
17+
locales/de.pak
18+
locales/el.pak
19+
locales/en-GB.pak
20+
locales/en-US.pak
21+
locales/es-419.pak
22+
locales/es.pak
23+
locales/et.pak
24+
locales/fa.pak
25+
locales/fi.pak
26+
locales/fil.pak
27+
locales/fr.pak
28+
locales/gu.pak
29+
locales/he.pak
30+
locales/hi.pak
31+
locales/hr.pak
32+
locales/hu.pak
33+
locales/id.pak
34+
locales/it.pak
35+
locales/ja.pak
36+
locales/kn.pak
37+
locales/ko.pak
38+
locales/lt.pak
39+
locales/lv.pak
40+
locales/ml.pak
41+
locales/mr.pak
42+
locales/ms.pak
43+
locales/nb.pak
44+
locales/nl.pak
45+
locales/pl.pak
46+
locales/pt-BR.pak
47+
locales/pt-PT.pak
48+
locales/ro.pak
49+
locales/ru.pak
50+
locales/sk.pak
51+
locales/sl.pak
52+
locales/sr.pak
53+
locales/sv.pak
54+
locales/sw.pak
55+
locales/ta.pak
56+
locales/te.pak
57+
locales/th.pak
58+
locales/tr.pak
59+
locales/uk.pak
60+
locales/vi.pak
61+
locales/zh-CN.pak
62+
locales/zh-TW.pak
63+
natives_blob.bin
64+
resources.pak
65+
resources/default_app.asar
66+
resources/electron.asar
67+
snapshot_blob.bin
68+
swiftshader/libEGL.so
69+
swiftshader/libGLESv2.so
70+
v8_context_snapshot.bin
71+
version

0 commit comments

Comments
 (0)
X Tutup