diff --git a/.github/workflows/docker_linuxes.yml b/.github/workflows/docker_linuxes.yml index 246927f..51abf6b 100644 --- a/.github/workflows/docker_linuxes.yml +++ b/.github/workflows/docker_linuxes.yml @@ -112,6 +112,18 @@ jobs: - name: Run unit tests (ctest) within the Docker image run: docker run ctl:latest sh -c "cd ./build && ctest" + ubuntu-latest-clang: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Build the Docker image + run: docker build --no-cache --rm -f ./docker/Dockerfile_ubuntu_latest_clang -t ctl:latest . + + - name: Run unit tests (ctest) within the Docker image + run: docker run ctl:latest sh -c "cd ./build && ctest" + redhat-ubi8: runs-on: ubuntu-latest @@ -223,4 +235,24 @@ jobs: - name: Run the docker that runs valgrind run: docker run ctl:latest - \ No newline at end of file + + gentoo: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Build the Docker image + run: docker build --no-cache --rm -f ./docker/Dockerfile_gentoo -t ctl:latest . + + - name: Run unit tests (ctest) within the Docker image + run: docker run ctl:latest sh -c "cd ./build && ctest" + + gentoo-clang: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Build the Docker image + run: docker build --no-cache --rm -f ./docker/Dockerfile_gentoo_clang -t ctl:latest . + + - name: Run unit tests (ctest) within the Docker image + run: docker run ctl:latest sh -c "cd ./build && ctest" + diff --git a/.github/workflows/ubuntu_arm_release.yml b/.github/workflows/ubuntu_arm_release.yml index 321b61f..73c82f1 100644 --- a/.github/workflows/ubuntu_arm_release.yml +++ b/.github/workflows/ubuntu_arm_release.yml @@ -27,6 +27,9 @@ jobs: steps: + - name: run apt-get update + run: sudo apt-get -y update + - name: install libtiff run: sudo apt-get -y install libtiff-dev diff --git a/docker/Dockerfile_gentoo b/docker/Dockerfile_gentoo new file mode 100644 index 0000000..8b74394 --- /dev/null +++ b/docker/Dockerfile_gentoo @@ -0,0 +1,25 @@ +FROM gentoo/stage3 + +# update packages +RUN emaint --auto sync + +# install development tools +RUN emerge cmake + +# install CTL required dependencies +RUN emerge openexr + +# install CTL optional dependencies +RUN emerge tiff + +# build CTL +WORKDIR /usr/src/CTL +COPY . . +WORKDIR /usr/src/CTL/build +RUN rm -R * || true +RUN cmake .. +RUN make +RUN make install + +# finalize docker environment +WORKDIR /usr/src/CTL diff --git a/docker/Dockerfile_gentoo_clang b/docker/Dockerfile_gentoo_clang new file mode 100644 index 0000000..660e7c6 --- /dev/null +++ b/docker/Dockerfile_gentoo_clang @@ -0,0 +1,44 @@ +FROM gentoo/stage3 + +# update packages +RUN emaint --auto sync + +# install development tools +RUN emerge cmake +RUN emerge llvm-core/clang + +# install CTL required dependencies +RUN emerge openexr + +# install CTL optional dependencies +RUN emerge tiff + +# switch to clang system wide +# based on https://wiki.gentoo.org/wiki/LLVM/Clang +# RUN printf "CC=clang\n" >> /etc/portage/make.conf +# RUN printf "CPP=clang-cpp\n" >> /etc/portage/make.conf +# RUN printf "CXX=clang++\n" >> /etc/portage/make.conf +# RUN printf "AR=llvm-ar\n" >> /etc/portage/make.conf +# RUN printf "NM=llvm-nm\n" >> /etc/portage/make.conf +# RUN printf "RANLIB=llvm-ranlib\n" >> /etc/portage/make.conf + +# switch to the make.profile symlink +#RUN eselect profile set 39 + +# update path +# RUN env-update && . /etc/profile +#RUN source /etc/profile && env-update +#RUN source /etc/profile +ENV PATH=$PATH:/usr/lib/llvm/19/bin + +# build CTL +WORKDIR /usr/src/CTL +COPY . . +WORKDIR /usr/src/CTL/build +RUN rm -R * || true +RUN cmake .. -DCMAKE_CXX_COMPILER=clang++ +RUN make +RUN make install + +# finalize docker environment +WORKDIR /usr/src/CTL diff --git a/docker/Dockerfile_ubuntu_latest_clang b/docker/Dockerfile_ubuntu_latest_clang new file mode 100644 index 0000000..5645c6d --- /dev/null +++ b/docker/Dockerfile_ubuntu_latest_clang @@ -0,0 +1,27 @@ +FROM ubuntu:latest + +RUN apt-get update + +# disable interactive install +ENV DEBIAN_FRONTEND noninteractive + +# install developement tools +RUN apt-get -y install cmake +RUN apt-get -y install clang + +# install CTL dependencies +RUN apt-get -y install libopenexr-dev +RUN apt-get -y install libtiff-dev + +# build CTL +WORKDIR /usr/src/CTL +COPY . . +WORKDIR /usr/src/CTL/build +RUN rm -R * || true +RUN cmake .. +RUN make +RUN make install + +# finalize docker environment +WORKDIR /usr/src/CTL +