commit 07cffeca2c8598e8b653820dd67565e1b9a2cf7e Author: NiccoloN Date: Wed Mar 11 16:25:45 2026 +0100 first commit diff --git a/.github/workflows/docker-build-and-push.yaml b/.github/workflows/docker-build-and-push.yaml new file mode 100644 index 0000000..c704508 --- /dev/null +++ b/.github/workflows/docker-build-and-push.yaml @@ -0,0 +1,48 @@ +name: Build and push Docker images +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + build-and-push: + runs-on: ubuntu-latest + + timeout-minutes: 1440 + + permissions: + contents: read + packages: write + attestations: write + id-token: write + + env: + REGISTRY: docker.io + IMAGE_NAME: niccolon/raptor-deps:mlir0c2701f + + steps: + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + github-server-url: https://chef.heaplab.deib.polimi.it/git + + - name: Build Docker image + run: | + cd ${GITHUB_WORKSPACE}/mlir0c2701f + docker build -t ${REGISTRY}/${IMAGE_NAME} -f Dockerfile . + + - name: Log in to the Container registry + if: ${{ github.ref == 'refs/heads/main' }} + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 + with: + registry: ${{ env.REGISTRY }} + username: niccolon + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Push Docker image + if: ${{ github.ref == 'refs/heads/main' }} + id: push + run: | + docker push ${REGISTRY}/${IMAGE_NAME} diff --git a/mlir0c2701f/Dockerfile b/mlir0c2701f/Dockerfile new file mode 100644 index 0000000..fee72a3 --- /dev/null +++ b/mlir0c2701f/Dockerfile @@ -0,0 +1,66 @@ +FROM ubuntu:24.04 AS builder + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + git \ + gcc \ + g++ \ + cmake \ + ninja-build \ + python3 \ + ca-certificates && \ + # Build MLIR (no install — keep full build tree) + cd /opt && \ + git clone --filter=blob:none --no-checkout https://github.com/llvm/llvm-project.git && \ + cd llvm-project && \ + git fetch --depth 1 origin 0c2701fe7fa002e1befc5f86c268a7964f96d286 && \ + git checkout FETCH_HEAD && \ + cmake -S llvm -B build \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_ENABLE_PROJECTS="mlir;clang" \ + -DLLVM_ENABLE_RUNTIMES="openmp" \ + -DLLVM_TARGETS_TO_BUILD="host" \ + -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DENABLE_LIBOMPTARGET=OFF \ + -DLLVM_ENABLE_LIBEDIT=OFF \ + -DLLVM_PARALLEL_LINK_JOBS=1 && \ + cmake --build build -j $(nproc) && \ + # Build protobuf + cd /tmp && \ + git clone --depth 1 --branch v34.0 https://github.com/protocolbuffers/protobuf && \ + cd protobuf && \ + cmake -S . -B build \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/opt/protobuf && \ + cmake --build build -j $(nproc) && \ + cmake --build build -- install && \ + # Cleanup only temp files, keep /opt/llvm-project + rm -rf /tmp/* + +FROM ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + ca-certificates \ + cmake \ + ninja-build \ + build-essential \ + python3 \ + python3-pip && \ + apt-get autoremove -y && \ + apt-get clean -y && \ + rm -rf /var/lib/apt/lists/* + +COPY --from=builder /opt/llvm-project /opt/llvm-project +COPY --from=builder /opt/protobuf /opt/protobuf + +RUN echo "/opt/protobuf/lib" > /etc/ld.so.conf.d/protobuf.conf && ldconfig