Skip to content

Commit 8f89b41

Browse files
committed
feat(scripts): support build artifact without compression
The github action `upload-artifact` always creates a zip tarball when collecting it and this caused double-zip a zip in our case. See the following issue for details: actions/upload-artifact#39 This change adds a cli parameter to build artifact without zip compression. And let the action to create a tarball for us. Test: build
1 parent d724392 commit 8f89b41

File tree

4 files changed

+50
-14
lines changed

4 files changed

+50
-14
lines changed

examples/scripts/build-with-docker.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ EOF
159159
mkdir -p "$workdir"/results/
160160

161161
builddir=$(mktemp -p "$PWD" -d .build.XXXXXX)
162-
cp "$sdk" "$builddir"/sdk.zip
162+
cp -ra "$sdk" "$builddir"/sdk
163163
cp -ra * "$builddir"
164164

165165
docker run --rm \

examples/scripts/clean-build.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ sudo apt-get update -qq
1919
sudo apt-get clean
2020
cd /work/src
2121

22-
(mkdir -p /work/src/sdk; unzip /work/src/sdk.zip; mv /work/src/anbox-streaming-sdk_*/* /work/src/sdk)
23-
2422
# NOTE: Only build Android example APK on x86_64 host.
2523
if [ $(uname -m) = x86_64 ]; then
2624
# For Anbox Streaming SDK library(AAR)

scripts/build.sh

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#
66

77
PROXY=
8+
CREATE_TARBALL=false
89
VERSION=$(scripts/gen-version.sh)
910

1011
for p in "$@"
@@ -16,11 +17,18 @@ do
1617
--version=*)
1718
VERSION=${p#*=}
1819
;;
20+
--create-tarball)
21+
CREATE_TARBALL=true
22+
;;
1923
*)
2024
echo "unrecognized option $p"
2125
esac
2226
done
2327

28+
mkdir_cp() {
29+
mkdir -p $2 && cp -av $1 $2
30+
}
31+
2432
builddir=$(mktemp -d -p $PWD .buildXXXXXX)
2533
topdir="$PWD"
2634
trap "rm -rf ${builddir}" INT EXIT
@@ -53,7 +61,9 @@ for d in `find $sdkdir/examples -name assets -type d`; do
5361
mkdir -p $d/js && cp js/anbox-stream-sdk.js $d/js
5462
done
5563

56-
(cd "$builddir" ; zip -r "$topdir"/"$sdkname".zip *)
64+
if [ "$CREATE_TARBALL" = true ]; then
65+
(cd "$builddir" ; zip -r "$topdir"/"$sdkname".zip *)
66+
fi
5767

5868
# Do a test build of our examples with the generated SDK package
5969
(
@@ -68,18 +78,31 @@ done
6878
cd examples; \
6979
scripts/build-with-docker.sh --proxy="${PROXY}" \
7080
--version="${VERSION}" \
71-
--anbox-stream-sdk="$topdir"/"$sdkname".zip; \
81+
--anbox-stream-sdk="$builddir"; \
7282
# To repack zip taball which includes APKs file later
7383
mkdir -p "$sdkname"/examples/android/apks; \
7484
cp results/*.apk "$sdkname"/examples/android/apks; mv results/*.apk "$topdir"; \
7585
# To repack zip taball which includes JAR/AAR files built during the docker runtime
7686
mkdir -p "$sdkname"/android/libs && cp results/*.aar "$sdkname"/android/libs; \
7787
mkdir -p "$sdkname"/examples/android/enhanced_webview_streaming/app/libs && cp results/*.aar \
7888
"$sdkname"/examples/android/enhanced_webview_streaming/app/libs/; \
79-
zip -r "$topdir"/"$sdkname".zip "$sdkname"/examples/android/apks/*.apk "$sdkname"/android/libs/*.aar \
80-
"$sdkname"/examples/android/enhanced_webview_streaming/app/libs/*.aar
8189

82-
# Validate the streaming sdk to ensure we don't accidentally leak unwanted files.
83-
"$topdir"/scripts/validate.sh --sdk-zip-tarball="$topdir"/"$sdkname".zip \
84-
--allowlist="$topdir"/scripts/streaming-sdk-files.allowlist
90+
if [ "$CREATE_TARBALL" = true ]; then
91+
zip -r "$topdir"/"$sdkname".zip "$sdkname"/examples/android/apks/*.apk "$sdkname"/android/libs/*.aar \
92+
"$sdkname"/examples/android/enhanced_webview_streaming/app/libs/*.aar
93+
94+
# Validate the streaming sdk to ensure we don't accidentally leak unwanted files.
95+
"$topdir"/scripts/validate.sh --sdk-zip-tarball="$topdir"/"$sdkname".zip \
96+
--allowlist="$topdir"/scripts/streaming-sdk-files.allowlist
97+
else
98+
mkdir_cp "$sdkname/examples/android/apks/*.apk" "$sdkdir/examples/android/apks/"
99+
mkdir_cp "$sdkname/android/libs/*.aar" "$sdkdir/android/libs/"
100+
mkdir_cp "$sdkname/examples/android/enhanced_webview_streaming/app/libs/*.aar" \
101+
"$sdkdir/examples/android/enhanced_webview_streaming/app/libs/"
102+
103+
"$topdir"/scripts/validate.sh --sdk-path="$sdkdir" \
104+
--allowlist="$topdir"/scripts/streaming-sdk-files.allowlist
105+
106+
mv "$builddir" "$topdir"/results
107+
fi
85108
)

scripts/validate.sh

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
ALLOWLIST="./sdk-files.allowlist"
88
SDK_ZIP_TARBALL="./anbox-streaming-sdk.zip"
9+
SDK_PATH=
910

1011
show_help() {
1112
cat <<'EOF'
@@ -16,6 +17,7 @@ Validates Anbox Streaming SDK by checking that all included source files are in
1617
optional arguments:
1718
--allowlist=<path> Path to the file holding the list of allowed files into the sdk (default: ./sdk-files.allowlist)
1819
--sdk-zip-tarball=<path> Path to the streaming sdk zip tarball (default: ./anbox-streaming-sdk.zip)
20+
--sdk-path=<path> Path to the folder path that include the Anbox Streaming SDK
1921
EOF
2022
}
2123

@@ -29,6 +31,10 @@ while [ -n "$1" ]; do
2931
ALLOWLIST=${1#*=}
3032
shift
3133
;;
34+
--sdk-path*)
35+
SDK_PATH=${1#*=}
36+
shift
37+
;;
3238
--sdk-zip-tarball=*)
3339
SDK_ZIP_TARBALL=${1#*=}
3440
shift
@@ -40,8 +46,13 @@ while [ -n "$1" ]; do
4046
esac
4147
done
4248

43-
if [ ! -f "$SDK_ZIP_TARBALL" ]; then
44-
echo "Anbox Streaming SDK is missing"
49+
if [ ! -f "$SDK_ZIP_TARBALL" ] ; then
50+
if [ ! -d "$SDK_PATH" ] ; then
51+
echo "Anbox Streaming SDK is missing"
52+
exit 1
53+
fi
54+
elif [ -d "$SDK_PATH" ] ; then
55+
echo "parameter '--sdk-path' and '--sdk-zip-tarbll' are mutually exclusive"
4556
exit 1
4657
fi
4758

@@ -79,11 +90,15 @@ search_for_remaining_files() {
7990
(
8091
tmpfolder=$(mktemp -d)
8192
cleanup() {
82-
rm -rf "$tmpfolder"
93+
rm -rf "$tmpfolder"
8394
}
8495
trap cleanup EXIT INT
8596

86-
unzip -qq "$SDK_ZIP_TARBALL" -d "$tmpfolder"
97+
if [ -d "$SDK_PATH" ]; then
98+
cp -ra "$SDK_PATH" "$tmpfolder"
99+
else
100+
unzip -qq "$SDK_ZIP_TARBALL" -d "$tmpfolder"
101+
fi
87102
cd "$tmpfolder"/anbox-streaming-sdk_*
88103
sdk_version="$(pwd | cut -d_ -f2)"
89104

0 commit comments

Comments
 (0)