Skip to content

Commit adb7fca

Browse files
authored
[7.17] Add support for bumping, WORKFLOW, and user/group IDs to make.sh
1 parent 28ca843 commit adb7fca

File tree

3 files changed

+43
-16
lines changed

3 files changed

+43
-16
lines changed

.ci/Dockerfile

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,36 @@
2222

2323
FROM openjdk:15
2424

25+
# Default UID/GID to 1000
26+
# it can be overridden at build time
27+
ARG BUILDER_UID=1000
28+
ARG BUILDER_GID=1000
29+
30+
# Create group and user if needed
31+
RUN (getent group ${BUILDER_GID} || groupadd -g ${BUILDER_GID} elastic) \
32+
&& (getent passwd ${BUILDER_UID} || useradd -u ${BUILDER_UID} -g ${BUILDER_GID} elastic) \
33+
&& mkdir -p /elasticsearch-java/build \
34+
&& chown -R ${BUILDER_UID}:${BUILDER_GID} /elasticsearch-java
35+
2536
WORKDIR /elasticsearch-java/
37+
USER ${BUILDER_UID}:${BUILDER_GID}
2638

2739
# Download and initialize Gradle
28-
COPY gradlew ./
29-
COPY gradle ./gradle
40+
COPY --chown=$BUILDER_UID:$BUILDER_GID gradlew ./
41+
COPY --chown=$BUILDER_UID:$BUILDER_GID gradle ./gradle
3042
RUN ./gradlew
3143

32-
COPY LICENSE.txt NOTICE.txt ./
44+
COPY --chown=$BUILDER_UID:$BUILDER_GID LICENSE.txt NOTICE.txt ./
3345

34-
# Prefetch dependencies
35-
COPY build.gradle.kts settings.gradle.kts ./
36-
COPY buildSrc ./buildSrc/
37-
COPY config ./config/
38-
COPY java-client/build.gradle.kts ./java-client/
46+
# Prefetch and cache dependencies
47+
COPY --chown=$BUILDER_UID:$BUILDER_GID build.gradle.kts settings.gradle.kts ./
48+
COPY --chown=$BUILDER_UID:$BUILDER_GID buildSrc ./buildSrc/
49+
COPY --chown=$BUILDER_UID:$BUILDER_GID config ./config/
50+
COPY --chown=$BUILDER_UID:$BUILDER_GID java-client/build.gradle.kts ./java-client/
3951
RUN ./gradlew resolveDependencies
4052

53+
# Build artifacts. Expects these mounted directories:
54+
# /elasticsearch-java/.git - git index (read-only)
55+
# /elasticsearch-java/java-client/src - source files (read-only)
56+
# /elasticsearch-java/build - output directory (read-write)
4157
ENTRYPOINT ["./gradlew"]

.ci/make.sh

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ product="elastic/elasticsearch-java"
5757
output_folder=".ci/output"
5858
codegen_folder=".ci/output"
5959
OUTPUT_DIR="$repo/${output_folder}"
60+
WORKFLOW="${WORKFLOW-staging}"
6061
mkdir -p "$OUTPUT_DIR"
6162

6263
echo -e "\033[34;1mINFO:\033[0m PRODUCT ${product}\033[0m"
@@ -110,7 +111,7 @@ case $CMD in
110111
TASK_ARGS=("$VERSION" "$codegen_folder")
111112
;;
112113
bump)
113-
if [ -v $VERSION ]; then
114+
if [ -z "$VERSION" ]; then
114115
echo -e "\033[31;1mTARGET: bump -> missing version parameter\033[0m"
115116
exit 1
116117
fi
@@ -137,9 +138,11 @@ output_mount="-v $repo/.ci/output:/elasticsearch-java/build"
137138
build_image() {
138139
echo -e "\033[34;1mINFO: building $product container\033[0m"
139140

140-
docker build --file .ci/Dockerfile --tag $docker_image \
141-
--build-arg USER_ID="$(id -u)" \
142-
--build-arg GROUP_ID="$(id -g)" .
141+
docker build \
142+
--file .ci/Dockerfile \
143+
--tag $docker_image \
144+
--build-arg BUILDER_UID="$(id -u)" \
145+
--build-arg BUILDER_GID="$(id -g)" .
143146
}
144147

145148
# ------------------------------------------------------- #
@@ -148,8 +151,16 @@ build_image() {
148151

149152
if [[ "$CMD" == "assemble" ]]; then
150153
rm -rf .ci/output/repository
154+
155+
if [[ "$WORKFLOW" == 'snapshot' ]]; then
156+
assemble_version="$VERSION-SNAPSHOT"
157+
else
158+
assemble_version="$VERSION"
159+
fi
160+
151161
build_image
152-
docker run --rm --env VERSION=$VERSION \
162+
echo -e "\033[34;1mINFO:\033[0m Building version ${assemble_version}\033[0m"
163+
docker run --rm --env VERSION=$assemble_version -u "$(id -u)" \
153164
$git_mount $src_mount $output_mount \
154165
$docker_image \
155166
publishForReleaseManager
@@ -158,15 +169,15 @@ if [[ "$CMD" == "assemble" ]]; then
158169
if [[ -n ${DEPENDENCIES_REPORTS_DIR+x} ]]; then
159170
cp .ci/output/release/dependencies.csv "$DEPENDENCIES_REPORTS_DIR"/"$DEPENDENCIES_REPORT"
160171
fi
161-
echo -e "\033[32;1mTARGET: successfully assembled client version $VERSION\033[0m"
172+
echo -e "\033[32;1mTARGET: successfully assembled client version $assemble_version\033[0m"
162173
else
163174
echo -e "\033[31;1mTARGET: assemble failed, empty workspace!\033[0m"
164175
exit 1
165176
fi
166177
fi
167178

168179
if [[ "$CMD" == "bump" ]]; then
169-
echo "TODO"
180+
echo $VERSION > config/version.txt
170181
fi
171182

172183
if [[ "$CMD" == "codegen" ]]; then

config/version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.17
1+
7.17.7

0 commit comments

Comments
 (0)