Skip to content

Commit 2e1b3cd

Browse files
committed
Extract common packaging code
… so each platform has only a function to lay out files. Issue: 365150653 Reviewed-on: #4797
1 parent d9aa791 commit 2e1b3cd

File tree

4 files changed

+44
-53
lines changed

4 files changed

+44
-53
lines changed

cobalt/build/android/package.py

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,17 @@
11
#!/usr/bin/env python3
22
"""Packages Cobalt for Android."""
33

4-
import argparse
54
import os
65
import shutil
7-
import tempfile
6+
from cobalt.build import packaging
87

98

10-
def main():
11-
parser = argparse.ArgumentParser()
12-
parser.add_argument('--name', required=True, help='of archive and base dir')
13-
parser.add_argument('out_dir', help='generated by GN and built by Ninja')
14-
parser.add_argument('package_dir', help='where to place the archive')
15-
args = parser.parse_args()
16-
package(args.out_dir, args.package_dir, args.name)
17-
18-
19-
def package(out_dir, package_dir, name):
20-
with tempfile.TemporaryDirectory() as tmp_dir:
21-
base_dir = os.path.join(tmp_dir, name)
22-
os.makedirs(base_dir)
23-
24-
shutil.copy2(os.path.join(out_dir, 'apks/Cobalt.apk'), base_dir)
25-
shutil.copytree(
26-
os.path.join(out_dir, 'content'),
27-
os.path.join(base_dir, 'cobalt_package', 'content'))
28-
29-
shutil.make_archive(os.path.join(package_dir, name), 'zip', tmp_dir)
9+
def lay_out(out_dir, base_dir):
10+
shutil.copy2(os.path.join(out_dir, 'apks/Cobalt.apk'), base_dir)
11+
shutil.copytree(
12+
os.path.join(out_dir, 'content'),
13+
os.path.join(base_dir, 'cobalt_package', 'content'))
3014

3115

3216
if __name__ == '__main__':
33-
main()
17+
packaging.run(lay_out)

cobalt/build/linux/package.py

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,24 @@
11
#!/usr/bin/env python3
22
"""Packages Cobalt for Linux."""
33

4-
import argparse
54
import os
65
import shutil
7-
import tempfile
6+
from cobalt.build import packaging
87

98

10-
def main():
11-
parser = argparse.ArgumentParser()
12-
parser.add_argument('--name', required=True, help='of archive and base dir')
13-
parser.add_argument('out_dir', help='generated by GN and built by Ninja')
14-
parser.add_argument('package_dir', help='where to place the archive')
15-
args = parser.parse_args()
16-
package(args.out_dir, args.package_dir, args.name)
17-
18-
19-
def package(out_dir, package_dir, name):
20-
with tempfile.TemporaryDirectory() as tmp_dir:
21-
base_dir = os.path.join(tmp_dir, name)
22-
os.makedirs(base_dir)
23-
24-
place_in_base_dir = [
25-
'cobalt',
26-
'content_shell.pak',
27-
'icudtl.dat',
28-
'libEGL.so',
29-
'libGLESv2.so',
30-
'starboard/libstarboard.so.17',
31-
'v8_context_snapshot.bin',
32-
]
33-
for f in place_in_base_dir:
34-
shutil.copy2(os.path.join(out_dir, f), base_dir)
35-
36-
shutil.make_archive(os.path.join(package_dir, name), 'zip', tmp_dir)
9+
def lay_out(out_dir, base_dir):
10+
place_in_base_dir = [
11+
'cobalt',
12+
'content_shell.pak',
13+
'icudtl.dat',
14+
'libEGL.so',
15+
'libGLESv2.so',
16+
'starboard/libstarboard.so.17',
17+
'v8_context_snapshot.bin',
18+
]
19+
for f in place_in_base_dir:
20+
shutil.copy2(os.path.join(out_dir, f), base_dir)
3721

3822

3923
if __name__ == '__main__':
40-
main()
24+
packaging.run(lay_out)

cobalt/build/packaging.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env python3
2+
"""Packages Cobalt with a given layout."""
3+
4+
import argparse
5+
import os
6+
import shutil
7+
import tempfile
8+
9+
10+
def run(lay_out):
11+
parser = argparse.ArgumentParser()
12+
parser.add_argument('--name', required=True, help='of archive and base dir')
13+
parser.add_argument('out_dir', help='generated by GN and built by Ninja')
14+
parser.add_argument('package_dir', help='where to place the archive')
15+
args = parser.parse_args()
16+
17+
with tempfile.TemporaryDirectory() as tmp_dir:
18+
base_dir = os.path.join(tmp_dir, args.name)
19+
os.makedirs(base_dir)
20+
lay_out(args.out_dir, base_dir)
21+
shutil.make_archive(
22+
os.path.join(args.package_dir, args.name), 'zip', tmp_dir)

cobalt/devinfra/kokoro/bin/common.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ run_package_release_pipeline () {
289289
cp "${build_info_path}" "${package_dir}/"
290290

291291
# Create release package.
292+
export PYTHONPATH="${WORKSPACE_COBALT}"
292293
if [[ "${PLATFORM}" =~ "android" ]]; then
293294
python3 "${WORKSPACE_COBALT}/cobalt/build/android/package.py" \
294295
--name=cobalt-android "${out_dir}" "${package_dir}"

0 commit comments

Comments
 (0)