Skip to content

Commit 4e6ce91

Browse files
authored
Set up repo to support automated codegen (#8)
1 parent 2408302 commit 4e6ce91

File tree

3 files changed

+31
-21
lines changed

3 files changed

+31
-21
lines changed

.ci/Dockerfile

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
ARG NODE_JS_VERSION=18
1+
ARG NODE_JS_VERSION=20
22
FROM node:${NODE_JS_VERSION}
33

4-
# Create app directory
5-
WORKDIR /usr/src/app
4+
# install zip util
5+
RUN apt-get clean -y && \
6+
apt-get update -y && \
7+
apt-get install -y zip
68

7-
RUN apt-get clean -y
8-
RUN apt-get update -y
9-
RUN apt-get install -y zip
9+
# Set user permissions and directory
10+
WORKDIR /usr/src/app
1011

1112
# Install app dependencies
1213
COPY package*.json ./

.ci/make.sh

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# assemble <VERSION> : build client artifacts with version
1313
# bump <VERSION> : bump client internals to version
1414
# bumpmatrix <VERSION> : bump stack version in test matrix to version
15-
# codegen : generate endpoints
15+
# codegen <VERSION> : generate endpoints
1616
# docsgen <VERSION> : generate documentation
1717
# examplegen : generate the doc examples
1818
# clean : clean workspace
@@ -24,7 +24,6 @@
2424
# ------------------------------------------------------- #
2525
script_path=$(dirname "$(realpath -s "$0")")
2626
repo=$(realpath "$script_path/../")
27-
generator=$(realpath "$script_path/../../elastic-client-generator-js")
2827

2928
# shellcheck disable=SC1090
3029
CMD=$1
@@ -38,7 +37,6 @@ product="elastic/elasticsearch-js"
3837
output_folder=".ci/output"
3938
codegen_folder=".ci/output"
4039
OUTPUT_DIR="$repo/${output_folder}"
41-
# REPO_BINDING="${OUTPUT_DIR}:/sln/${output_folder}"
4240
NODE_JS_VERSION=18
4341
WORKFLOW=${WORKFLOW-staging}
4442
mkdir -p "$OUTPUT_DIR"
@@ -59,18 +57,29 @@ case $CMD in
5957
echo -e "\033[31;1mTARGET: assemble -> missing version parameter\033[0m"
6058
exit 1
6159
fi
62-
echo -e "\033[36;1mTARGET: assemble artefact $VERSION\033[0m"
60+
echo -e "\033[36;1mTARGET: assemble artifact $VERSION\033[0m"
6361
TASK=release
6462
TASK_ARGS=("$VERSION" "$output_folder")
6563
;;
6664
codegen)
67-
if [ -v $VERSION ]; then
68-
echo -e "\033[31;1mTARGET: codegen -> missing version parameter\033[0m"
69-
exit 1
65+
if [ -v "$VERSION" ] || [[ -z "$VERSION" ]]; then
66+
# fall back to branch name or `main` if no VERSION is set
67+
branch_name=$(git rev-parse --abbrev-ref HEAD)
68+
if [[ "$branch_name" =~ ^[0-9]+\.[0-9]+ ]]; then
69+
echo -e "\033[36;1mTARGET: codegen -> No VERSION argument found, using branch name: \`$branch_name\`\033[0m"
70+
VERSION="$branch_name"
71+
else
72+
echo -e "\033[36;1mTARGET: codegen -> No VERSION argument found, using \`main\`\033[0m"
73+
VERSION="main"
74+
fi
7075
fi
71-
echo -e "\033[36;1mTARGET: codegen API v$VERSION\033[0m"
76+
if [ "$VERSION" = 'main' ]; then
77+
echo -e "\033[36;1mTARGET: codegen API $VERSION\033[0m"
78+
else
79+
echo -e "\033[36;1mTARGET: codegen API v$VERSION\033[0m"
80+
fi
81+
7282
TASK=codegen
73-
# VERSION is BRANCH here for now
7483
TASK_ARGS=("$VERSION")
7584
;;
7685
docsgen)
@@ -80,13 +89,11 @@ case $CMD in
8089
fi
8190
echo -e "\033[36;1mTARGET: generate docs for $VERSION\033[0m"
8291
TASK=codegen
83-
# VERSION is BRANCH here for now
8492
TASK_ARGS=("$VERSION" "$codegen_folder")
8593
;;
8694
examplesgen)
8795
echo -e "\033[36;1mTARGET: generate examples\033[0m"
8896
TASK=codegen
89-
# VERSION is BRANCH here for now
9097
TASK_ARGS=("$VERSION" "$codegen_folder")
9198
;;
9299
bump)
@@ -96,7 +103,6 @@ case $CMD in
96103
fi
97104
echo -e "\033[36;1mTARGET: bump to version $VERSION\033[0m"
98105
TASK=bump
99-
# VERSION is BRANCH here for now
100106
TASK_ARGS=("$VERSION")
101107
;;
102108
bumpmatrix)
@@ -138,14 +144,17 @@ echo -e "\033[34;1mINFO: running $product container\033[0m"
138144

139145
docker run \
140146
--volume "$repo:/usr/src/app" \
141-
--volume "$generator:/usr/src/elastic-client-generator-js" \
142147
--volume /usr/src/app/node_modules \
143148
-u "$(id -u):$(id -g)" \
144149
--env "WORKFLOW=$WORKFLOW" \
145150
--name make-elasticsearch-js \
146151
--rm \
147152
$product \
148-
node .ci/make.mjs --task $TASK ${TASK_ARGS[*]}
153+
/bin/bash -c "cd /usr/src && \
154+
git clone https://$CLIENTS_GITHUB_TOKEN@github.com/elastic/elastic-client-generator-js.git && \
155+
mkdir -p /usr/src/elastic-client-generator-js/output && \
156+
cd /usr/src/app && \
157+
node .ci/make.mjs --task $TASK ${TASK_ARGS[*]}"
149158

150159
# ------------------------------------------------------- #
151160
# Post Command tasks & checks

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "elasticsearch-serverless",
33
"private": true,
4-
"version": "0.1.0",
4+
"version": "0.1.0+20231031",
55
"description": "The official Node.js Elastic client for the Elasticsearch Serverless service.",
66
"main": "index.js",
77
"types": "index.d.ts",

0 commit comments

Comments
 (0)