ci: add Dockerfile and its automation script
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
FROM ubuntu:24.04
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y\
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
cmake \
|
||||||
|
tcl tcl-dev \
|
||||||
|
tk tk-dev \
|
||||||
|
libfreeimage-dev \
|
||||||
|
libxmu-dev libxi-dev \
|
||||||
|
libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev \
|
||||||
|
xvfb \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN git clone https://github.com/Open-Cascade-SAS/OCCT.git opencascade
|
||||||
|
WORKDIR /opencascade
|
||||||
|
RUN git checkout V7_4_0 -b dev-branch
|
||||||
|
RUN mkdir -p build
|
||||||
|
WORKDIR /opencascade/build
|
||||||
|
|
||||||
|
RUN cmake .. \
|
||||||
|
-DCMAKE_BUILD_TYPE=release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||||
|
-DUSE_FREEIMAGE=OFF \
|
||||||
|
-DUSE_FFMPEG=OFF \
|
||||||
|
-DUSE_VTK=OFF \
|
||||||
|
-DUSE_TBB=OFF
|
||||||
|
RUN make -j$(nproc)
|
||||||
|
RUN make install
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
COPY src/occt/ ./src
|
||||||
|
COPY unit-test/occt/ ./unit-test
|
||||||
|
|
||||||
|
RUN cmake -S src -B build -DCMAKE_PREFIX_PATH=/usr/local && cmake --build build
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
IMAGE_NAME="occt-builder:latest"
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PROJECT_PATH="$(cd "$SCRIPT_DIR/../../" && pwd)"
|
||||||
|
DOCKERFILE_PATH="$SCRIPT_DIR/../occt.Dockerfile"
|
||||||
|
|
||||||
|
echo "Building image..."
|
||||||
|
if ! docker build -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" "$PROJECT_PATH"; then
|
||||||
|
echo "Image build failed." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Listing /usr/local/bin..."
|
||||||
|
if ! docker run --rm "$IMAGE_NAME" ls /usr/local/bin; then
|
||||||
|
echo "Listing /usr/local/bin failed." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user