Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#980: Moved flavor template-Exasol-all-java-17 to script-languages repo #459

Merged
merged 1 commit into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions aws-code-build/ci/buildspec.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions flavors/template-Exasol-all-java-17/FLAVOR_DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Details for r-4-minimal-EXASOL-6.2.0

## Packages

- [UDFclient dependencies](flavor_base/udfclient_deps/packages/apt_get_packages)
- [Language dependencies](flavor_base/language_deps/packages/apt_get_packages)
- Flavor packages
- [Ubuntu packages](flavor_base/flavor_base_deps/packages/apt_get_packages)
- Customization
- [Ubuntu packages](flavor_customization/packages/apt_get_packages)
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FROM {{language_deps}}

RUN mkdir /conf /buckets

COPY --from={{base_test_deps}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{base_test_deps}} /env /env
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

RUN mkdir /exaudfclient /exaudf
COPY /exaudfclient /exaudfclient

WORKDIR /exaudfclient/
RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty -c dbg --config java --config test-binaries"]
RUN cp -r -L bazel-bin/* /exaudf && rm -r /exaudf/external
RUN rm -r /root/.cache/bazel #Delete bazel cache as it contains java rules with special characters which will cause a problem for Bucketfs

WORKDIR /exaudfclient/base
RUN ./test_udfclient.sh /exaudf/exaudfclient

WORKDIR /
RUN mkdir /exasol_emulator
COPY emulator/ /exasol_emulator
COPY /exaudfclient/base/exaudflib/zmqcontainer.proto /exasol_emulator
RUN cd /exasol_emulator && protoc zmqcontainer.proto --python_out=.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM {{build_deps}}

RUN mkdir -p /build_info/packages
COPY base_test_deps/packages /build_info/packages/base_test_deps

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/base_test_deps/apt_get_packages --with-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
gdb|12.1-0ubuntu1~22.04.2
valgrind|1:3.18.1-1ubuntu2
gdbserver|12.1-0ubuntu1~22.04.2
binutils|2.38-4ubuntu2.6
patchelf|0.14.3-1
strace|5.16-0ubuntu3
chrpath|0.16-2
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

ENV ARCHIVE_UBUNTU_PREFIX=""
RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$ARCHIVE_UBUNTU_PREFIX\2/" /etc/apt/sources.list

COPY 01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
COPY scripts /scripts

RUN mkdir -p /build_info/packages
COPY build_deps/packages /build_info/packages/build_deps

ENV BAZEL_PACKAGE_VERSION="7.2.1"
ENV BAZEL_PACKAGE_FILE="bazel_$BAZEL_PACKAGE_VERSION-linux-x86_64.deb"
ENV BAZEL_PACKAGE_URL="https://github.com/bazelbuild/bazel/releases/download/$BAZEL_PACKAGE_VERSION/$BAZEL_PACKAGE_FILE"

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/build_deps/apt_get_packages --with-versions

RUN apt-get -y update && \
curl -L --output "$BAZEL_PACKAGE_FILE" "$BAZEL_PACKAGE_URL" && \
apt-get install -y "./$BAZEL_PACKAGE_FILE" && \
rm "$BAZEL_PACKAGE_FILE" && \
apt-get -y clean && \
apt-get -y autoremove

RUN curl -L -o swig-2.0.4.tar.gz https://exasol-script-languages-dependencies.s3.eu-central-1.amazonaws.com/swig-2.0.4.tar.gz && \
tar zxf swig-2.0.4.tar.gz && \
(cd swig-2.0.4 && ./configure --prefix=/usr && make && make install) && \
rm -rf swig-2.0.4 swig-2.0.4.tar.gz

RUN locale-gen en_US.UTF-8 && \
update-locale LC_ALL=en_US.UTF-8 && \
ldconfig

RUN touch /env && \
echo "export PROTOBUF_BIN=/usr/bin/protoc" >> /env && \
echo "export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64" >> /env
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
coreutils|8.32-4.1ubuntu1.2
locales|2.35-0ubuntu3.8
tar|1.34+dfsg-1ubuntu0.1.22.04.2
curl|7.81.0-1ubuntu1.18
openjdk-17-jdk-headless|17.0.12+7-1ubuntu2~22.04
build-essential|12.9ubuntu3
libpcre3-dev|2:8.39-13ubuntu0.22.04.1
protobuf-compiler|3.12.4-1ubuntu7.22.04.1
chrpath|0.16-2
python3|3.10.6-1~22.04.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
FROM {{language_deps}}

COPY --from={{build_deps}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{build_deps}} /env /env
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

RUN mkdir /exaudfclient /exaudf /exaudf/src
COPY /exaudfclient /exaudfclient

WORKDIR /exaudfclient/
RUN ["/bin/bash", "-c", "source /env && bash build.sh --config no-tty --config optimize --config java --config fast-binary"]
RUN cp -r -L bazel-bin/* /exaudf && rm -r /exaudf/external

WORKDIR /exaudfclient/base
RUN ./test_udfclient.sh /exaudf/exaudfclient

WORKDIR /exaudf/

RUN rm -r /exaudfclient

COPY --from={{build_deps}} /build_info /build_info
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN mkdir /conf /buckets
147 changes: 147 additions & 0 deletions flavors/template-Exasol-all-java-17/flavor_base/build_steps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
from typing import Dict

from exasol.slc.internal.tasks.build.docker_flavor_image_task import DockerFlavorAnalyzeImageTask


class AnalyzeUDFClientDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "udfclient_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"01_nodoc": "ext/01_nodoc","scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeLanguageDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "language_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"scripts": "ext/scripts"}

def requires_tasks(self):
return {"udfclient_deps": AnalyzeUDFClientDeps}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBuildDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "build_deps"

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"01_nodoc": "ext/01_nodoc", "scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "build_run"

def requires_tasks(self):
return {"build_deps": AnalyzeBuildDeps,
"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"exaudfclient": "exaudfclient"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBaseTestDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "base_test_deps"

def requires_tasks(self):
return {"build_deps": AnalyzeBuildDeps}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeBaseTestBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "base_test_build_run"

def requires_tasks(self):
return {"base_test_deps": AnalyzeBaseTestDeps,
"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self) -> Dict[str, str]:
return {"exaudfclient": "exaudfclient", "emulator": "emulator"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeFlavorBaseDeps(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_base_deps"

def requires_tasks(self):
return {"language_deps": AnalyzeLanguageDeps}

def get_additional_build_directories_mapping(self):
return {"01_nodoc": "ext/01_nodoc", "scripts": "ext/scripts"}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeFlavorCustomization(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_customization"

def requires_tasks(self):
return {"flavor_base_deps": AnalyzeFlavorBaseDeps}


class AnalyzeFlavorTestBuildRun(DockerFlavorAnalyzeImageTask):

def get_build_step(self) -> str:
return "flavor_test_build_run"

def requires_tasks(self):
return {"flavor_customization": AnalyzeFlavorCustomization,
"base_test_build_run": AnalyzeBaseTestBuildRun}

def get_path_in_flavor(self):
return "flavor_base"


class AnalyzeRelease(DockerFlavorAnalyzeImageTask):
def get_build_step(self) -> str:
return "release"

def requires_tasks(self):
return {"flavor_customization": AnalyzeFlavorCustomization,
"build_run": AnalyzeBuildRun,
"language_deps": AnalyzeLanguageDeps}

def get_path_in_flavor(self):
return "flavor_base"


class SecurityScan(DockerFlavorAnalyzeImageTask):
def get_build_step(self) -> str:
return "security_scan"

def requires_tasks(self):
return {"release": AnalyzeRelease}

def get_path_in_flavor(self):
return "flavor_base"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM {{ language_deps }}

RUN mkdir -p /build_info/packages/flavor_base_deps

COPY flavor_base_deps/packages/apt_get_packages /build_info/packages/flavor_base_deps
RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/flavor_base_deps/apt_get_packages --with-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
coreutils|8.32-4.1ubuntu1.2
locales|2.35-0ubuntu3.8
unzip|6.0-26ubuntu3.2
wget|1.21.2-2ubuntu1.1
git|1:2.34.1-1ubuntu1.11
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM {{base_test_build_run}}

RUN mkdir -p /conf /buckets

COPY --from={{flavor_customization}} /usr /usr
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /opt /opt
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /lib /lib
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /bin /bin
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /etc /etc
RUN true # workaround for https://github.com/moby/moby/issues/37965

COPY --from={{flavor_customization}} /build_info /build_info
RUN true # workaround for https://github.com/moby/moby/issues/37965


RUN ldconfig

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
JAVA=localzmq+protobuf:///{{ bucketfs_name }}/{{ bucket_name }}/{{ path_in_bucket }}{{ release_name }}?lang=java#buckets/{{ bucketfs_name }}/{{ bucket_name }}/{{ path_in_bucket }}{{ release_name }}/exaudf/exaudfclient
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM {{udfclient_deps}}

COPY language_deps/packages /build_info/packages/language_deps

RUN /scripts/install_scripts/install_via_apt.pl --file /build_info/packages/language_deps/apt_get_packages --with-versions

ENV JAVA_PREFIX /usr/lib/jvm/java-17-openjdk-amd64
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ca-certificates|20240203~22.04.1
curl|7.81.0-1ubuntu1.18
openjdk-17-jdk-headless|17.0.12+7-1ubuntu2~22.04
Loading
Loading