diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 90e7d7b559748..02a94c834e3a9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -590,19 +590,23 @@ jobs: - x86_64-unknown-linux-musl - aarch64-unknown-linux-gnu include: - - target: x86_64-unknown-linux-gnu - os: ubuntu-24.04 + # Please use minimal possible version of ubuntu, because it produces constraint on glibc + - os: ubuntu-22.04 + target: x86_64-unknown-linux-gnu + image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024 executable_name: cubestored strip: true compress: false - - target: x86_64-unknown-linux-musl - os: ubuntu-24.04 + - os: ubuntu-22.04 + target: x86_64-unknown-linux-musl + image: cubejs/rust-cross:x86_64-unknown-linux-musl-15082024 executable_name: cubestored strip: true # cubestored: CantPackException: bad DT_HASH nbucket=0x344 len=0x1890 compress: false - - target: aarch64-unknown-linux-gnu - os: ubuntu-24.04 + - os: ubuntu-24.04-arm + image: cubejs/rust-builder:bullseye-llvm-18 + target: aarch64-unknown-linux-gnu executable_name: cubestored # Unable to recognise the format of the input file `rust/cubestore/target/aarch64-unknown-linux-gnu/release/cubestored' strip: false @@ -610,7 +614,7 @@ jobs: compress: false fail-fast: false container: - image: cubejs/rust-cross:${{ matrix.target }}-15082024 + image: ${{ matrix.image }} permissions: contents: write steps: @@ -626,7 +630,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: ./rust/cubestore -> target - prefix-key: v0-rust-cubestore-cross + prefix-key: v1-rust-cubestore-cross key: target-${{ matrix.target }} - name: Build with Cargo run: | diff --git a/.github/workflows/rust-cubestore-master.yml b/.github/workflows/rust-cubestore-master.yml index db2c66df847bd..d4a35704a6245 100644 --- a/.github/workflows/rust-cubestore-master.yml +++ b/.github/workflows/rust-cubestore-master.yml @@ -264,16 +264,19 @@ jobs: # Please use minimal possible version of ubuntu, because it produces constraint on glibc - os: ubuntu-22.04 target: x86_64-unknown-linux-gnu + image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024 executable_name: cubestored strip: true compress: false - os: ubuntu-22.04 target: x86_64-unknown-linux-musl + image: cubejs/rust-cross:x86_64-unknown-linux-musl-15082024 executable_name: cubestored strip: true # cubestored: CantPackException: bad DT_HASH nbucket=0x344 len=0x1890 compress: false - - os: ubuntu-22.04 + - os: ubuntu-24.04-arm + image: cubejs/rust-builder:bullseye-llvm-18 target: aarch64-unknown-linux-gnu executable_name: cubestored # Unable to recognise the format of the input file `rust/cubestore/target/aarch64-unknown-linux-gnu/release/cubestored' @@ -282,7 +285,7 @@ jobs: compress: false fail-fast: false container: - image: cubejs/rust-cross:${{ matrix.target }}-15082024 + image: ${{ matrix.image }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -296,7 +299,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: ./rust/cubestore -> target - prefix-key: v0-rust-cubestore-cross + prefix-key: v1-rust-cubestore-cross key: target-${{ matrix.target }} - name: Build with Cargo run: | diff --git a/.github/workflows/rust-cubestore.yml b/.github/workflows/rust-cubestore.yml index 4468563362fa5..5e814eacf4fc6 100644 --- a/.github/workflows/rust-cubestore.yml +++ b/.github/workflows/rust-cubestore.yml @@ -203,16 +203,19 @@ jobs: # Please use minimal possible version of ubuntu, because it produces constraint on glibc - os: ubuntu-22.04 target: x86_64-unknown-linux-gnu + image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024 executable_name: cubestored strip: true compress: false - os: ubuntu-22.04 target: x86_64-unknown-linux-musl + image: cubejs/rust-cross:x86_64-unknown-linux-musl-15082024 executable_name: cubestored strip: true # cubestored: CantPackException: bad DT_HASH nbucket=0x344 len=0x1890 compress: false - - os: ubuntu-22.04 + - os: ubuntu-24.04-arm + image: cubejs/rust-builder:bullseye-llvm-18 target: aarch64-unknown-linux-gnu executable_name: cubestored # Unable to recognise the format of the input file `rust/cubestore/target/aarch64-unknown-linux-gnu/release/cubestored' @@ -221,7 +224,7 @@ jobs: compress: false fail-fast: false container: - image: cubejs/rust-cross:${{ matrix.target }}-15082024 + image: ${{ matrix.image }} steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain @@ -235,7 +238,7 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: ./rust/cubestore -> target - prefix-key: v0-rust-cubestore-cross + prefix-key: v1-rust-cubestore-cross key: target-${{ matrix.target }} - name: Build with Cargo run: | diff --git a/rust/cubestore/builder.Dockerfile b/rust/cubestore/builder.Dockerfile index 91b99d7a55e9a..0c2c10c956885 100644 --- a/rust/cubestore/builder.Dockerfile +++ b/rust/cubestore/builder.Dockerfile @@ -1,7 +1,9 @@ -ARG OS_NAME=bookworm-slim +ARG RUST_TAG=bookworm-slim +ARG OS_NAME=bookworm -FROM rust:$OS_NAME +FROM rust:$RUST_TAG +ARG OS_NAME=bookworm ARG LLVM_VERSION=18 RUN rustup update && \ @@ -13,9 +15,8 @@ RUN apt update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common libssl-dev pkg-config wget gnupg git apt-transport-https ca-certificates \ && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ # https://github.com/llvm/llvm-project/issues/62475 \ - # add it twice to workaround: - && add-apt-repository --yes "deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" \ - && add-apt-repository --yes "deb https://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" \ + && add-apt-repository --yes "deb https://apt.llvm.org/$OS_NAME/ llvm-toolchain-$OS_NAME-$LLVM_VERSION main" \ + && add-apt-repository --yes "deb https://apt.llvm.org/$OS_NAME/ llvm-toolchain-$OS_NAME-$LLVM_VERSION main" \ && apt update \ && apt install -y git llvm-$LLVM_VERSION clang-$LLVM_VERSION libclang-$LLVM_VERSION-dev clang-$LLVM_VERSION lld-$LLVM_VERSION cmake \ && rm -rf /var/lib/apt/lists/*; diff --git a/rust/cubestore/docker-bake.hcl b/rust/cubestore/docker-bake.hcl index 8f390a2b89a4e..87076611bf1fe 100644 --- a/rust/cubestore/docker-bake.hcl +++ b/rust/cubestore/docker-bake.hcl @@ -1,10 +1,25 @@ +# EOL LTS 2028-06-30 target "rust-builder-bookworm" { context = "." dockerfile = "builder.Dockerfile" args = { - OS_NAME = "1-slim-bookworm" + RUST_TAG = "1-slim-bookworm" + OS_NAME = "bookworm" LLVM_VERSION = "18" } tags = ["cubejs/rust-builder:bookworm-llvm-18"] platforms = ["linux/amd64", "linux/arm64"] } + +# EOL LTS 2026-08-31 +target "rust-builder-bullseye" { + context = "." + dockerfile = "builder.Dockerfile" + args = { + RUST_TAG = "1-slim-bullseye" + OS_NAME = "bullseye" + LLVM_VERSION = "18" + } + tags = ["cubejs/rust-builder:bullseye-llvm-18"] + platforms = ["linux/amd64", "linux/arm64"] +}