--- /dev/null +++ b/.docker/.env @@ -0,0 +1,7 @@ +RUST_TOOLCHAIN=nightly-2022-05-11 +RUST_C=1.62.0-nightly +POLKA_VERSION=release-v0.9.24 +UNIQUE_BRANCH=develop +FEATURE='--features=quartz-runtime --release' +USER=*** +PASS=*** --- a/.docker/Dockerfile-parachain +++ b/.docker/Dockerfile-parachain @@ -3,24 +3,11 @@ LABEL maintainer="Unique.Network" ARG RUST_TOOLCHAIN=nightly-2022-05-11 -#ARG RUST_C=1.62.0-nightly ARG POLKA_VERSION=release-v0.9.24 -ARG UNIQUE_BRANCH=develop - -#ARG USER=*** -#ARG PASS=*** ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN -#ENV RUST_C $RUST_C ENV POLKA_VERSION $POLKA_VERSION -ENV UNIQUE_BRANCH $UNIQUE_BRANCH - - -#RUN echo $RUST_TOOLCHAIN -#RUN echo $RUST_C -#RUN echo $POLKA_VERSION -#RUN echo $UNIQUE_BRANCH ENV CARGO_HOME="/cargo-home" ENV PATH="/cargo-home/bin:$PATH" @@ -37,30 +24,20 @@ rustup target list --installed && \ rustup show RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN - -RUN cargo install cargo-chef -RUN mkdir unique_parachain -WORKDIR /unique_parachain - -# ===== Chef ===== -FROM rust-builder as chef +####works inside repo folder### -COPY . . -RUN cargo chef prepare --recipe-path recipe.json # ===== BUILD ====== -FROM rust-builder as builder +FROM rust-builder as builder-unique RUN mkdir unique_parachain WORKDIR /unique_parachain -COPY --from=chef /unique_parachain/recipe.json recipe.json -ARG PROFILE=release -RUN cargo chef cook "--$PROFILE" --recipe-path recipe.json +ARG FEATURE='--release' COPY . . -RUN cargo build "--$PROFILE" +RUN cargo build $FEATURE # && \ # cargo test @@ -78,8 +55,6 @@ # ===== RUN ====== FROM phusion/baseimage:focal-1.1.0 - -ARG PROFILE=release RUN apt-get -y update && \ apt-get -y upgrade && \ @@ -90,7 +65,9 @@ nvm install v15.5.0 && \ nvm use v15.5.0 -RUN git clone https://github.com/paritytech/polkadot-launch +RUN git clone https://github.com/UniqueNetwork/polkadot-launch.git && \ + cd /polkadot-launch && \ + git checkout feature/runtime-upgrade-testing RUN export NVM_DIR="$HOME/.nvm" && \ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ @@ -98,8 +75,11 @@ npm install --global yarn && \ yarn -COPY --from=builder /unique_parachain/target/$PROFILE/unique-collator /unique-chain/target/$PROFILE/ -COPY --from=builder-polkadot /unique_parachain/polkadot/target/$PROFILE/polkadot /polkadot/target/$PROFILE/ +COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/ +COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ + +COPY ["./launch-config.json", "/polkadot-launch/launch-config.json"] + EXPOSE 9844 EXPOSE 9944 --- a/.docker/Dockerfile-parachain-v2 +++ b/.docker/Dockerfile-parachain-v2 @@ -34,10 +34,12 @@ RUN mkdir unique_parachain WORKDIR /unique_parachain -ARG PROFILE='features=quartz-runtime --release' +ARG PROFILE='features=quartz-runtime' + +ENV PROFILE $PROFILE COPY . . -RUN cargo build --features=quartz-runtime --release +RUN cargo build --$PROFILE # && \ # cargo test @@ -56,7 +58,6 @@ FROM phusion/baseimage:focal-1.1.0 -#ARG PROFILE='--features=quartz-runtime --release' RUN apt-get -y update && \ apt-get -y upgrade && \ --- a/.docker/docker-compose-tests-parachain.yml +++ b/.docker/docker-compose-tests-parachain.yml @@ -3,26 +3,26 @@ services: blockchain_nodes: build: - context: ./ - dockerfile: Dockerfile-parachain + context: ../ + dockerfile: .docker/Dockerfile-parachain args: - RUST_TOOLCHAIN=${RUST_TOOLCHAIN:?err} - RUST_C=${RUST_C:?err} - POLKA_VERSION=${POLKA_VERSION:?err} - - UNIQUE_BRANCH=${UNIQUE_BRANCH:?err} + - FEATURE=${FEATURE:?err} volumes: - ./launch-config.json:/polkadot-launch/launch-config.json env_file: - ./.env - integration_tests: - build: - context: tests/ - dockerfile: Dockerfile-tests - environment: - RPC_URL: http://blockchain_nodes:9933/ - volumes: - - ./tests/src/config_docker.ts:/unique_parachain/src/config.ts - - /home/ubuntu/mochawesome-report:/unique_parachain/mochawesome-report - depends_on: - - blockchain_nodes +# integration_tests: +# build: +# context: tests/ +# dockerfile: Dockerfile-tests +# environment: +# RPC_URL: http://blockchain_nodes:9933/ +# volumes: +# - ./tests/src/config_docker.ts:/unique_parachain/src/config.ts +# - /home/ubuntu/mochawesome-report:/unique_parachain/mochawesome-report +# depends_on: +# - blockchain_nodes --- /dev/null +++ b/.docker/docker-compose.tmp-master.j2 @@ -0,0 +1,10 @@ +version: "3.5" + +services: + blockchain_nodes: + build: + args: + - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" + - "BRANCH={{ BRANCH }}" + - "REPO_URL={{ REPO_URL }}" + - "FEATURE={{ FEATURE }}" --- a/.docker/docker-compose.tmp.j2 +++ b/.docker/docker-compose.tmp.j2 @@ -1,7 +1,7 @@ version: "3.5" services: - node-o: + blockchain_nodes: build: args: - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" @@ -10,4 +10,3 @@ - "FEATURE={{ FEATURE }}" command: cargo run --release $FEATURE -- --dev -linfo --unsafe-ws-external --rpc-cors=all --unsafe-rpc-external - --- a/.github/workflows/build-test-master.yml +++ b/.github/workflows/build-test-master.yml @@ -72,7 +72,7 @@ - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/docker-compose.tmp.j2 + template: .docker/docker-compose.tmp-master.j2 output_file: .docker/docker-compose.${{ matrix.network }}.yml variables: | REPO_URL=${{ github.server_url }}/${{ github.repository }}.git @@ -84,7 +84,7 @@ run: cat .docker/docker-compose.${{ matrix.network }}.yml - name: Build the stack - run: docker-compose -f ".docker/docker-compose-dev.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build + run: docker-compose -f ".docker/docker-compose-tests-parachain.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build # - name: "Build the Docker image with Feature: ${{ env.features }}" # run: docker build -t build-${{ github.head_ref }} --file .docker/Dockerfile-chain-dev --build-arg REPO_URL=${{ github.server_url }}/${{ github.repository }}.git --build-arg RUST_TOOLCHAIN=${{ env.actual_toolchain }} --build-arg FEATURE="${{ env.features }}" --build-arg BRANCH=${{ github.head_ref }} --no-cache .