@@ -10,9 +10,69 @@ ARGS="${@:2}"
1010
1111DATE=$( date -u +" %Y-%m-%d-%H-%M-%S" )
1212
13+ build_ubuntu_docker () {
14+ local UBUNTU_VERSION=$1
15+ local ARGS=" ${@: 2} "
16+
17+ DOCKER_BUILDKIT=1 docker build \
18+ --file deployment/Dockerfile.ubuntu \
19+ --build-arg UBUNTU_VERSION=" $UBUNTU_VERSION " \
20+ $ARGS \
21+ --tag " test-ubuntu-${UBUNTU_VERSION} " \
22+ .
23+ }
24+
25+ run_docker () {
26+ local VOLUME=$1
27+ local WORKDIR=$2
28+ local IMAGE=$3
29+ local UBUNTU_VERSION=$4
30+ local ARG=$6
31+ local ARGS=${@: 7}
32+
33+ local IMAGE_TAG=" ${IMAGE} -${UBUNTU_VERSION} "
34+
35+ if [[ -z " $ARG " ]]; then
36+ docker run -it --rm \
37+ -v ./:$VOLUME \
38+ -w $WORKDIR \
39+ " $IMAGE_TAG " \
40+ bash
41+ else
42+ docker run -it --rm \
43+ -v ./:$VOLUME \
44+ -w $WORKDIR \
45+ " $IMAGE_TAG " \
46+ bash \
47+ $ARG \
48+ " $ARGS "
49+ fi
50+ }
51+
52+ build_brainframe_cli_env () {
53+ local DOCKERFILE=$1
54+ local PYPROJECT=$2
55+ local POETRYLOCK=$3
56+ local UBUNTU_VERSION=$4
57+ local ADDITIONAL_ARGS=${@: 5}
58+
59+ local IMAGE_TAG=" brainframe-cli-env-${UBUNTU_VERSION} "
60+
61+ # Build the Docker image
62+ DOCKER_BUILDKIT=1 docker build \
63+ --file " deployment/$DOCKERFILE " \
64+ --build-arg WORKDIR=/deployment \
65+ --build-arg UBUNTU_VERSION=" $UBUNTU_VERSION " \
66+ --build-arg PYPROJECT=" $PYPROJECT " \
67+ --build-arg POETRYLOCK=" $POETRYLOCK " \
68+ $ADDITIONAL_ARGS \
69+ --tag " $IMAGE_TAG " \
70+ .
71+ }
72+
1373if [ -z $CMD ] || [ $CMD == ' -h' ] || [ $CMD == ' --help' ]; then
1474 echo " Copyright (c) 2024 AOTU, Inc. All rights reserved."
15- cat $CMDLINE | grep echo | awk ' (NR>2)' | awk ' (NR<29 )' | awk ' {$1= ""; print $0}'
75+ cat $CMDLINE | grep echo | awk ' (NR>2)' | awk ' (NR<11 )' | awk ' {$1= ""; print $0}'
1676fi
1777
1878case $CMD in
@@ -24,129 +84,72 @@ case $CMD in
2484 echo ┌─────── deploy brainframe-cli ──────────────────────────
2585 ;;
2686
27- ubuntu-2404-build)
28- echo ├ ./deployment/do ubuntu-2404-build # --no-cache
29- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=24.04 $ARGS --tag ubuntu-2404 .
30- ;;
31-
32- ubuntu-2404-run)
33- echo │ ./deployment/do ubuntu-2404-run
34- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2404 bash
35- ;;
36-
37- ubuntu-2204-build)
38- echo ├ ./deployment/do ubuntu-2204-build # --no-cache
39- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=22.04 $ARGS --tag ubuntu-2204 .
40- ;;
41-
42- ubuntu-2204-run)
43- echo │ ./deployment/do ubuntu-2204-run
44- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2204 bash
45- ;;
46-
47- ubuntu-2004-build)
48- echo ├ ./deployment/do ubuntu-2004-build # --no-cache
49- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=20.04 $ARGS --tag ubuntu-2004 .
50- ;;
51-
52- ubuntu-2004-run)
53- echo │ ./deployment/do ubuntu-2004-run
54- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2004 bash
55- ;;
56-
57- ubuntu-1804-build)
58- echo ├ ./deployment/do ubuntu-1804-build # --no-cache
59- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=18.04 $ARGS --tag ubuntu-1804 .
87+ ubuntu-build)
88+ echo ├ ./deployment/do ubuntu-build 20.04 # --no-cache
89+ build_ubuntu_docker $ARGS
6090 ;;
6191
62- ubuntu-1804- run)
63- echo │ ./deployment/do ubuntu-1804- run
64- docker run -it --rm -v ./:/ brainframe-cli -w /brainframe-cli/dist ubuntu-1804 bash
92+ ubuntu-run)
93+ echo │ ./deployment/do ubuntu-run 20.04
94+ run_docker / brainframe-cli /brainframe-cli/dist test-ubuntu $ARGS
6595 ;;
6696
6797 comments_only)
6898 echo └────────────────────────────────────────────────────────
6999 echo ┌─────── build brainframe-cli ───────────────────────────
70100 ;;
71101
72- brainframe-cli-2404-env-build)
73- echo ├ ./deployment/do brainframe-cli-2404-env-build # --no-cache
74- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env.py312 --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=24.04 --build-arg PYPROJECT=pyproject.toml.py310.py312 --build-arg POETRYLOCK=poetry.lock.py310.py312 $ARGS --tag brainframe-cli-env:2404 .
75- ;;
102+ brainframe-cli-env-build)
103+ echo ├ ./deployment/do brainframe-cli-env-build 20.04 # --no-cache
104+ case $ARG in
105+ 24.04)
106+ build_brainframe_cli_env Dockerfile.env.cp312 pyproject.toml.cp310.cp312 poetry.lock.cp310.cp312 $ARGS
107+ ;;
76108
77- brainframe-cli-2404-env-run)
78- echo │ ./deployment/do brainframe-cli-2404-env-run
79- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2404 bash
80- ;;
109+ 22.04)
110+ build_brainframe_cli_env Dockerfile.env pyproject.toml.cp310.cp312 poetry.lock.cp310.cp312 $ARGS
111+ ;;
81112
82- brainframe-cli-2404-lint)
83- echo │ ./deployment/do brainframe-cli-2404-lint
84- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2404 bash -c " cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli/ && poetry run isort /brainframe-cli/"
85- ;;
113+ 20.04)
114+ build_brainframe_cli_env Dockerfile.env pyproject.toml.cp38 poetry.lock.cp38 $ARGS
115+ ;;
86116
87- brainframe-cli-2404-build)
88- echo │ ./deployment/do brainframe-cli-2404-build
89- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2404 bash -c " cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
117+ 18.04)
118+ build_brainframe_cli_env Dockerfile.env pyproject.toml.cp38 poetry.lock.cp38 $ARGS
119+ ;;
120+ esac
90121 ;;
91122
92- brainframe-cli-2204- env-build )
93- echo ├ ./deployment/do brainframe-cli-2204- env-build # --no-cache
94- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR= /deployment --build-arg UBUNTU_VERSION=22.04 --build-arg PYPROJECT=pyproject.toml.py310.py312 --build-arg POETRYLOCK=poetry.lock.py310.py312 $ARGS --tag brainframe-cli-env:2204 .
123+ brainframe-cli-env-run )
124+ echo │ ./deployment/do brainframe-cli-env-run 20.04
125+ run_docker /brainframe-cli /deployment brainframe-cli-env $ARGS
95126 ;;
96127
97- brainframe-cli-2204-env-run )
98- echo │ ./deployment/do brainframe-cli-2204-env-run
99- docker run -it --rm -v ./:/ brainframe-cli -w /deployment brainframe-cli-env:2204 bash
128+ brainframe-cli-lint )
129+ echo │ ./deployment/do brainframe-cli-lint 20.04
130+ run_docker /brainframe-cli /deployment brainframe-cli-env $ARG bash -c " cp /deployment/* / brainframe-cli/ && poetry run black / brainframe-cli/ && poetry run isort /brainframe-cli/ "
100131 ;;
101132
102- brainframe-cli-2204-lint)
103- echo │ ./deployment/do brainframe-cli-2204-lint
104- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2204 bash -c " cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli/ && poetry run isort /brainframe-cli/"
105- ;;
106-
107- brainframe-cli-2204-build)
108- echo │ ./deployment/do brainframe-cli-2204-build
109- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2204 bash -c " cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
110- ;;
111-
112- brainframe-cli-2004-env-build)
113- echo ├ ./deployment/do brainframe-cli-2004-env-build # --no-cache
114- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=20.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock $ARGS --tag brainframe-cli-env:2004 .
115- ;;
116-
117- brainframe-cli-2004-env-run)
118- echo │ ./deployment/do brainframe-cli-2004-env-run
119- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2004 bash
120- ;;
133+ brainframe-cli-build)
134+ echo │ ./deployment/do brainframe-cli-build 20.04
135+ case $ARG in
136+ 24.04)
137+ PYTHON_TAG=" 3.10 3.12"
138+ ;;
121139
122- brainframe-cli-2004-lint)
123- echo │ ./deployment/do brainframe-cli-2004-lint
124- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2004 bash -c " cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli && poetry run isort /brainframe-cli"
125- ;;
140+ 22.04)
141+ PYTHON_TAG=" 3.10 3.12"
142+ ;;
126143
127- brainframe-cli-2004-build)
128- echo │ ./deployment/do brainframe-cli-2004-build
129- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2004 bash -c " cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
130- ;;
131-
132- brainframe-cli-1804-env-build)
133- echo ├ ./deployment/do brainframe-cli-1804-env-build # --no-cache
134- DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=18.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock --build-arg POETRY_VERSION=1.1.14 $ARGS --tag brainframe-cli-env:1804 .
135- ;;
136-
137- brainframe-cli-1804-env-run)
138- echo │ ./deployment/do brainframe-cli-1804-env-run
139- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:1804 bash
140- ;;
141-
142- brainframe-cli-1804-lint)
143- echo │ ./deployment/do brainframe-cli-1804-lint
144- docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:1804 bash -c " cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli && poetry run isort /brainframe-cli"
145- ;;
144+ 20.04)
145+ PYTHON_TAG=3.8
146+ ;;
146147
147- brainframe-cli-1804-build)
148- echo │ ./deployment/do brainframe-cli-1804-build
149- docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:1804 bash -c " cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
148+ 18.04)
149+ PYTHON_TAG=
150+ ;;
151+ esac
152+ run_docker /brainframe-cli /brainframe-cli brainframe-cli-env $ARG bash -c " cp /deployment/* /brainframe-cli/ && python3 deployment/build.py --versions $PYTHON_TAG "
150153 ;;
151154
152155 comments_only)
0 commit comments