Skip to content

Commit 338443e

Browse files
committed
chore(stacks): add symlink
1 parent 4291664 commit 338443e

2 files changed

Lines changed: 38 additions & 3 deletions

File tree

build.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,23 @@ function upload {
4949
-v "${CURRENT_DIR}/scripts:/scripts" \
5050
-w /workspace \
5151
"${BUILDPACK_DEP_IMAGE}" \
52-
python3 /scripts/upload.py "${STACK_NAME}" "${DIST_DIR}"
52+
python3 /scripts/storage.py upload "${STACK_NAME}" "${DIST_DIR}"
5353
}
5454

55+
function symlink {
56+
docker run --rm \
57+
--env OSS_ENDPOINT=${OSS_ENDPOINT} \
58+
--env OSS_ACCESS_KEY_ID=${OSS_ACCESS_KEY_ID} \
59+
--env OSS_ACCESS_KEY_SECRET=${OSS_ACCESS_KEY_SECRET} \
60+
-v "${DIST_DIR}":"${DIST_DIR}" \
61+
-v "${CURRENT_DIR}/stacks:/workspace" \
62+
-v "${CURRENT_DIR}/scripts:/scripts" \
63+
-w /workspace \
64+
"${BUILDPACK_DEP_IMAGE}" \
65+
python3 /scripts/storage.py symlink "${1}" "${2}"
66+
}
67+
68+
5569
function renew() {
5670
git tag -d "$1"
5771
git push origin :refs/tags/"$1"
Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
import re
23
import sys
34
import oss2
45

@@ -26,8 +27,28 @@ def upload_list(stack_name, dist_dir):
2627
filename = os.path.join("stacks", stack_name, _filename)
2728
filepath = os.path.join(root, _filename)
2829
upload(filename, filepath)
29-
30+
31+
32+
def symlink(stack_name, version):
33+
symlink_list = []
34+
object_list = [
35+
obj.key for obj in bucket.list_objects(
36+
f"stacks/{stack_name}/{stack_name}-{version}.").object_list
37+
]
38+
object_list.sort(reverse=True)
39+
for obj in object_list:
40+
name = f"stacks/{stack_name}/{stack_name}-{version}"
41+
symlink = re.sub("%s.[0-9]{1,}" % name, name, obj)
42+
if symlink != obj and symlink not in symlink_list:
43+
bucket.put_symlink(obj, symlink)
44+
symlink_list.append(symlink)
3045

3146

3247
if __name__ == "__main__":
33-
upload_list(sys.argv[1], sys.argv[2])
48+
action = sys.argv[1]
49+
if action == "upload":
50+
upload_list(sys.argv[2], sys.argv[3])
51+
elif action == "symlink":
52+
symlink(sys.argv[2], sys.argv[3])
53+
else:
54+
print("Unknown action: %s" % action)

0 commit comments

Comments
 (0)