1+ ARG POLKADOT_BUILD_BRANCH
2+ FROM uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} as polkadot
3+
4+ # ===== Rust builder =====
5+ FROM ubuntu:20.04 as rust-builder
6+ LABEL maintainer="Unique.Network"
7+
8+ ARG RUST_TOOLCHAIN=
9+
10+ ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
11+ ENV CARGO_HOME="/cargo-home"
12+ ENV PATH="/cargo-home/bin:$PATH"
13+ ENV TZ=UTC
14+ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
15+
16+ RUN apt-get update && \
17+ apt-get install -y curl cmake pkg-config libssl-dev git clang protobuf-compiler && \
18+ apt-get clean && \
19+ rm -r /var/lib/apt/lists/*
20+
21+ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
22+
23+ RUN rustup toolchain uninstall $(rustup toolchain list) && \
24+ rustup toolchain install $RUST_TOOLCHAIN && \
25+ rustup default $RUST_TOOLCHAIN && \
26+ rustup target list --installed && \
27+ rustup show
28+ RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
29+
30+ RUN mkdir /unique_parachain
31+ WORKDIR /unique_parachain
32+
33+ # ===== BUILD current version ======
34+ FROM rust-builder as builder-unique-current
35+
36+ ARG PROFILE=release
37+ ARG FEATURE=
38+ ARG MAINNET_BRANCH=
39+ ARG REPO_URL=
40+
41+ WORKDIR /unique_parachain
42+
43+ RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
44+ cargo build --features=$FEATURE --$PROFILE
45+
46+ # ===== BUILD target version ======
47+ FROM rust-builder as builder-unique-target
48+
49+ ARG PROFILE=release
50+ ARG FEATURE=
51+ ARG BRANCH=
52+ ARG REPO_URL=
53+
54+ COPY . /unique_parachain
55+ WORKDIR /unique_parachain
56+
57+ RUN cargo build --features=$FEATURE --$PROFILE
58+
59+ # ===== RUN ======
60+
61+ FROM ubuntu:20.04
62+
63+ ARG RUNTIME=
64+ ENV RUNTIME $RUNTIME
65+ ARG REPLICA_FROM=
66+ ENV REPLICA_FROM=$REPLICA_FROM
67+ ARG POLKADOT_BUILD_BRANCH=
68+ ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH
69+
70+ RUN apt-get -y update && \
71+ apt-get -y install curl git && \
72+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
73+ export NVM_DIR="$HOME/.nvm" && \
74+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
75+ nvm install v16.16.0 && \
76+ nvm use v16.16.0
77+
78+ RUN git clone https://github.com/uniquenetwork/polkadot-launch.git -b unique-network
79+
80+ RUN export NVM_DIR="$HOME/.nvm" && \
81+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
82+ cd /polkadot-launch && \
83+ npm install --global yarn && \
84+ yarn install
85+
86+ RUN echo "$RUNTIME"
87+ RUN echo "$REPLICA_FROM"
88+ RUN echo "$POLKADOT_BUILD_BRANCH"
89+
90+ COPY --from=builder-unique-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/
91+ COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/
92+ COPY --from=builder-unique-target /unique_parachain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm
93+
94+ COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
95+
96+ COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
97+ COPY --from=polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm
98+
99+ CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" REPLICA_FROM && \
100+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
101+ cd /polkadot-launch && \
102+ yarn start launch-config.json --test-upgrade-parachains
0 commit comments