From 59ecb8fd99f67b6f83a591c59006e4ce60056a6f Mon Sep 17 00:00:00 2001 From: Kuzu CI Date: Wed, 9 Oct 2024 11:42:46 -0400 Subject: [PATCH] Backport extension script --- scripts/extension/Dockerfile | 5 ++++ scripts/extension/PRODUCTION_RELEASES | 6 +++++ scripts/extension/compose.yaml | 10 ++++++++ scripts/extension/nginx.conf | 32 +++++++++++++++++++++++++ scripts/extension/purge-beta.py | 34 +++++++++++++++++++++++++++ 5 files changed, 87 insertions(+) create mode 100644 scripts/extension/Dockerfile create mode 100644 scripts/extension/PRODUCTION_RELEASES create mode 100644 scripts/extension/compose.yaml create mode 100644 scripts/extension/nginx.conf create mode 100644 scripts/extension/purge-beta.py diff --git a/scripts/extension/Dockerfile b/scripts/extension/Dockerfile new file mode 100644 index 00000000000..9b95aabf98c --- /dev/null +++ b/scripts/extension/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:stable +COPY --chown=nginx:nginx ./releases /usr/share/nginx/html +COPY --chown=nginx:nginx ./dataset /usr/share/nginx/html/dataset +COPY nginx.conf /etc/nginx/nginx.conf +RUN rm /usr/share/nginx/html/index.html /usr/share/nginx/html/50x.html diff --git a/scripts/extension/PRODUCTION_RELEASES b/scripts/extension/PRODUCTION_RELEASES new file mode 100644 index 00000000000..634faf506ff --- /dev/null +++ b/scripts/extension/PRODUCTION_RELEASES @@ -0,0 +1,6 @@ +v0.1.0 +v0.3.0 +v0.3.1 +v0.5.0 +v0.5.1.3 +vdev diff --git a/scripts/extension/compose.yaml b/scripts/extension/compose.yaml new file mode 100644 index 00000000000..e4f049fb02d --- /dev/null +++ b/scripts/extension/compose.yaml @@ -0,0 +1,10 @@ +version: '3' +services: + file-server: + image: kuzudb/extension-repo + pull_policy: always + ports: + - "8081:80" + restart: always + labels: + - com.centurylinklabs.watchtower.enable=true diff --git a/scripts/extension/nginx.conf b/scripts/extension/nginx.conf new file mode 100644 index 00000000000..8ddf616324a --- /dev/null +++ b/scripts/extension/nginx.conf @@ -0,0 +1,32 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + +http { + expires 15552000s; + add_header Cache-Control "public, no-transform"; + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + autoindex on; + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + gzip on; + + include /etc/nginx/conf.d/*.conf; +} \ No newline at end of file diff --git a/scripts/extension/purge-beta.py b/scripts/extension/purge-beta.py new file mode 100644 index 00000000000..0cd201c127c --- /dev/null +++ b/scripts/extension/purge-beta.py @@ -0,0 +1,34 @@ +import pathlib +import os +from packaging.version import Version + +CURRENT_DIR = pathlib.Path(__file__).parent.resolve() + +RELEASES_PATH = CURRENT_DIR.joinpath('releases').resolve() + +production_releases = open(CURRENT_DIR.joinpath('PRODUCTION_RELEASES')).read().splitlines() + +releases_to_purge = [r for r in os.listdir(RELEASES_PATH) if r.startswith('v')] + +releases_to_purge = [r for r in releases_to_purge if r not in production_releases] +releases_to_purge = [r[1:] for r in releases_to_purge] +releases_to_purge.sort(key=Version) + +releases_to_purge.pop() + +releases_to_purge = ['v' + r for r in releases_to_purge] + +if len(releases_to_purge) == 0: + print('No releases to purge.') + exit(1) + +print('Releases to purge:') +for r in releases_to_purge: + print(' ' + r) + +for r in releases_to_purge: + path_to_purge = RELEASES_PATH.joinpath(r) + print('Deleting ' + str(path_to_purge)) + os.system('rm -rf ' + str(path_to_purge)) + +print('Done.')