From fc2ce00644a6385bebc0bba1308c2df0a0889fc6 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Wed, 23 Aug 2023 12:24:01 +0000 Subject: [PATCH] ci: specify endpoints for xcm containers --- --- a/.docker/Dockerfile-acala.j2 +++ b/.docker/Dockerfile-acala.j2 @@ -14,12 +14,11 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install {{ RUST_TOOLCHAIN }} && \ +RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ rustup target list --installed && \ rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -29,13 +28,19 @@ WORKDIR /unique_parachain -RUN git clone -b {{ ACALA_BUILD_BRANCH }} --depth 1 https://github.com/AcalaNetwork/Acala.git && \ +RUN git clone -b {{ ACALA_BUILD_BRANCH }} --depth 1 https://github.com/AcalaNetwork/Acala.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/Acala/target \ cd Acala && \ make init && \ - make build-release + make build-release && \ + mv ./target/production/acala /unique_parachain/Acala/ # ===== BIN ====== FROM ubuntu:22.04 as builder-acala -COPY --from=builder-acala-bin /unique_parachain/Acala/target/production/acala /unique_parachain/acala/target/production/acala +COPY --from=builder-acala-bin /unique_parachain/Acala/acala /bin/acala +ENTRYPOINT ["/bin/acala"] --- a/.docker/Dockerfile-astar.j2 +++ b/.docker/Dockerfile-astar.j2 @@ -14,12 +14,11 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install {{ RUST_TOOLCHAIN }} && \ +RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ rustup target list --installed && \ rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -29,12 +28,18 @@ WORKDIR /unique_parachain -RUN git clone --recurse-submodules -b {{ ASTAR_BUILD_BRANCH }} --depth 1 https://github.com/AstarNetwork/Astar.git && \ +RUN git clone --recurse-submodules -b {{ ASTAR_BUILD_BRANCH }} --depth 1 https://github.com/AstarNetwork/Astar.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/Astar/target \ cd Astar && \ - cargo build --release + CARGO_INCREMENTAL=0 cargo build --release --locked && \ + mv ./target/release/astar-collator /unique_parachain/Astar/ # ===== BIN ====== FROM ubuntu:22.04 as builder-astar -COPY --from=builder-astar-bin /unique_parachain/Astar/target/release/astar-collator /unique_parachain/astar/target/release/astar +COPY --from=builder-astar-bin /unique_parachain/Astar/astar-collator /bin/astar-collator +ENTRYPOINT ["/bin/astar-collator"] --- a/.docker/Dockerfile-cumulus.j2 +++ b/.docker/Dockerfile-cumulus.j2 @@ -14,12 +14,11 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install {{ RUST_TOOLCHAIN }} && \ +RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ rustup target list --installed && \ rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -29,12 +28,18 @@ WORKDIR /unique_parachain -RUN git clone -b {{ CUMULUS_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/cumulus.git && \ +RUN git clone -b {{ CUMULUS_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/cumulus.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/cumulus/target \ cd cumulus && \ - cargo build --release + CARGO_INCREMENTAL=0 cargo build --release --locked && \ + mv ./target/release/polkadot-parachain /unique_parachain/cumulus/cumulus # ===== BIN ====== FROM ubuntu:22.04 as builder-cumulus -COPY --from=builder-cumulus-bin /unique_parachain/cumulus/target/release/polkadot-parachain /unique_parachain/cumulus/target/release/polkadot-parachain +COPY --from=builder-cumulus-bin /unique_parachain/cumulus/cumulus /bin/cumulus +ENTRYPOINT ["/bin/cumulus"] --- a/.docker/Dockerfile-moonbeam.j2 +++ b/.docker/Dockerfile-moonbeam.j2 @@ -14,12 +14,11 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install {{ RUST_TOOLCHAIN }} && \ +RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ rustup target list --installed && \ rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -30,12 +29,18 @@ WORKDIR /unique_parachain -RUN git clone -b {{ MOONBEAM_BUILD_BRANCH }} --depth 1 https://github.com/PureStake/moonbeam.git && \ +RUN git clone -b {{ MOONBEAM_BUILD_BRANCH }} --depth 1 https://github.com/PureStake/moonbeam.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/moonbeam/target \ cd moonbeam && \ - cargo build --release + CARGO_INCREMENTAL=0 cargo build --release --locked && \ + mv ./target/release/moonbeam /unique_parachain/moonbeam/ # ===== BIN ====== FROM ubuntu:22.04 as builder-moonbeam -COPY --from=builder-moonbeam-bin /unique_parachain/moonbeam/target/release/moonbeam /unique_parachain/moonbeam/target/release/moonbeam +COPY --from=builder-moonbeam-bin /unique_parachain/moonbeam/moonbeam /bin/moonbeam +ENTRYPOINT ["/bin/moonbeam"] --- a/.docker/Dockerfile-polkadot.j2 +++ b/.docker/Dockerfile-polkadot.j2 @@ -14,12 +14,11 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install {{ RUST_TOOLCHAIN }} && \ +RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ + rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ rustup target list --installed && \ rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -29,12 +28,18 @@ WORKDIR /unique_parachain -RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git && \ +RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/polkadot/target \ cd polkadot && \ - cargo build --release + CARGO_INCREMENTAL=0 cargo build --release --locked && \ + mv ./target/release/polkadot /unique_parachain/polkadot/ # ===== BIN ====== FROM ubuntu:22.04 as builder-polkadot -COPY --from=builder-polkadot-bin /unique_parachain/polkadot/target/release/polkadot /unique_parachain/polkadot/target/release/polkadot +COPY --from=builder-polkadot-bin /unique_parachain/polkadot/polkadot /bin/polkadot +ENTRYPOINT ["/bin/polkadot"] --- /dev/null +++ b/.docker/Dockerfile-unique @@ -0,0 +1,58 @@ +# ===== Rust builder ===== +FROM ubuntu:22.04 as rust-builder +LABEL maintainer="Unique.Network" + +ENV CARGO_HOME="/cargo-home" +ENV PATH="/cargo-home/bin:$PATH" +ENV TZ=UTC +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN apt-get update && \ + apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \ + apt-get clean && \ + rm -r /var/lib/apt/lists/* + +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none + +ARG RUST_TOOLCHAIN +RUN echo "Using Rust '$RUST_TOOLCHAIN'" && \ + rustup toolchain install $RUST_TOOLCHAIN && \ + rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \ + rustup default $RUST_TOOLCHAIN && \ + rustup target list --installed && \ + rustup show + +RUN mkdir /unique_parachain +WORKDIR /unique_parachain + +# ===== BUILD UNIQUE ===== +FROM rust-builder as builder-polkadot-bin + +WORKDIR /unique_parachain + +COPY . unique-chain/ + +ARG RUNTIME_FEATURES +# registry for Updating registry. It is safe to cache it, because it only contains references to the dependency files, +# and the caches for the files themselves are set in Cargo.lock, which won't be updated because of --locked flag +# git for Updating git repository. It is safe to cache it, because git dependencies are cached by revision, +# revision is locked in Cargo.lock, and it is forbidden to update the Cargo.lock, because of --locked flag +# passed to cargo build +# target for built dependencies. Technically, it may be unsafe to cache it, but there was no bugs in the caching logic +# of it to this day (Ignoring incremental compilation, which is explicitly disabled by CARGO_INCREMENTAL=0). Only the +# fully built crates will be cached depending on the crate source, version and feature set, which are locked by +# Cargo.lock, which can't be updated because of the --locked flag. +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/unique-chain/target \ + cd unique-chain && \ + echo "Using runtime features '$RUNTIME_FEATURES'" && \ + CARGO_INCREMENTAL=0 cargo build --release --features="$RUNTIME_FEATURES" --locked && \ + mv ./target/release/unique-collator /unique_parachain/unique-chain/ + +# ===== BIN ====== + +FROM ubuntu:22.04 as builder-polkadot + +COPY --from=builder-polkadot-bin /unique_parachain/unique-chain/unique-collator /bin/unique-collator +ENTRYPOINT ["/bin/unique-collator"] -- gitstuff