git.delta.rocks / unique-network / refs/commits / 24a0f65a32fc

difftreelog

ci add polkadex to xcm workflow

Konstantin Astakhov2023-08-31parent: #21a0683.patch.diff
in: master

7 files changed

modified.baedeker/xcm-unique.jsonnetdiffbeforeafterboth
before · .baedeker/xcm-unique.jsonnet
1local2m = import 'baedeker-library/mixin/spec.libsonnet',3;45local relay = {6	name: 'relay',7	bin: 'bin/polkadot',8	validatorIdAssignment: 'staking',9	spec: {Genesis:{10		chain: 'westend-local',11		modify:: m.genericRelay($, hrmp = std.join([], [12			[[$.parachains[a].paraId, $.parachains[b].paraId, 8, 512], [$.parachains[b].paraId, $.parachains[a].paraId, 8, 512]],13			for [a, b] in [14				['unique', 'acala'],15				['unique', 'moonbeam'],16				['unique', 'statemint'],17				['unique', 'astar'],18			]19		])),20	}},21	nodes: {22		[name]: {23			bin: $.bin,24			wantedKeys: 'relay',25		},26		for name in ['alice', 'bob', 'charlie', 'dave', 'eve', 'ferdie']27	},28};2930local unique = {31	name: 'unique',32	bin: 'bin/unique',33	paraId: 1001,34	spec: {Genesis:{35		modify:: m.genericPara($),36	}},37	nodes: {38		[name]: {39			bin: $.bin,40			wantedKeys: 'para',41		},42		for name in ['alice', 'bob']43	},44};4546local acala = {47	name: 'acala',48	bin: 'bin/acala',49	paraId: 1002,50	spec: {Genesis:{51		chain: 'acala-dev',52		modify:: bdk.mixer([53			m.genericPara($),54			function(prev) prev {id+: '-local'},55		]),56	}},57	nodes: {58		[name]: {59			bin: $.bin,60			wantedKeys: 'para',61			legacyRpc: true,62		},63		for name in ['alice', 'bob']64	},65};6667local moonbeam = {68	name: 'moonbeam',69	bin: 'bin/moonbeam',70	signatureSchema: 'Ethereum',71	paraId: 1003,72	spec: {Genesis:{73		chain: 'moonbeam-local',74		specFilePrefix: 'moonbeam-local-',75		modify:: m.genericPara($),76	}},77	nodes: {78		[name]: {79			bin: $.bin,80			wantedKeys: 'para-nimbus',81			legacyRpc: true,82		},83		for name in ['alice', 'bob']84	},85};8687local statemint = {88	name: 'statemint',89	bin: 'bin/cumulus',90	paraId: 1004,91	spec: {Genesis:{92		chain: 'statemint-local',93		modify:: m.genericPara($),94	}},95	nodes: {96		[name]: {97			bin: $.bin,98			wantedKeys: 'para-ed',99		},100		for name in ['alice', 'bob']101	},102};103104local astar = {105	name: 'astar',106	bin: 'bin/astar',107	paraId: 1005,108	spec: {Genesis:{109		chain: 'astar-dev',110		modify:: m.genericPara($),111	}},112	nodes: {113		[name]: {114			bin: $.bin,115			wantedKeys: 'para',116			legacyRpc: true,117		},118		for name in ['alice', 'bob']119	},120};121122relay + {123	parachains: {124		[para.name]: para,125		for para in [unique, acala, moonbeam, statemint, astar]126	},127}
modified.docker/Dockerfile-astar.j2diffbeforeafterboth
--- a/.docker/Dockerfile-astar.j2
+++ b/.docker/Dockerfile-astar.j2
@@ -35,11 +35,11 @@
     --mount=type=cache,target=/unique_parachain/Astar/target \
     cd Astar && \
     CARGO_INCREMENTAL=0 cargo build --release --locked && \
-    mv ./target/release/astar-collator /unique_parachain/Astar/
+    mv ./target/release/astar-collator /unique_parachain/Astar/astar
 
 # ===== BIN ======
 
 FROM ubuntu:22.04 as builder-astar
 
-COPY --from=builder-astar-bin /unique_parachain/Astar/astar-collator /bin/astar-collator
+COPY --from=builder-astar-bin /unique_parachain/Astar/astar /bin/astar
 ENTRYPOINT ["/bin/astar-collator"]
added.docker/Dockerfile-polkadex.j2diffbeforeafterboth
--- /dev/null
+++ b/.docker/Dockerfile-polkadex.j2
@@ -0,0 +1,46 @@
+# ===== 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
+
+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 mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD ACALA =====
+FROM rust-builder as builder-polkadex-bin
+
+WORKDIR /unique_parachain
+
+RUN git clone --depth 1 -b {{ POLKADEX_BUILD_BRANCH }} https://github.com/Polkadex-Substrate/parachain.git
+
+RUN --mount=type=cache,target=/cargo-home/registry \
+    --mount=type=cache,target=/cargo-home/git \
+    --mount=type=cache,target=/unique_parachain/parachain/target \
+    cd parachain && \
+    CARGO_INCREMENTAL=0 cargo build --release --locked && \
+    mkdir /unique_parachain/Polkadex && \
+    mv ./target/release/parachain-polkadex-node /unique_parachain/Polkadex/polkadex
+
+# ===== BIN ======
+
+FROM ubuntu:22.04 as builder-polkadex
+
+COPY --from=builder-polkadex-bin /unique_parachain/Polkadex/polkadex /bin/polkadex
+ENTRYPOINT ["/bin/polkadex"]
added.docker/additional/Dockerfile-chainqldiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/Dockerfile-chainql
@@ -0,0 +1,40 @@
+# ===== 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
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+    rustup toolchain install nightly-2022-11-15 && \
+    rustup default nightly-2022-11-15 && \
+    rustup target list --installed && \
+    rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2022-11-15
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD CHAINQL =====
+FROM rust-builder as builder-chainql-bin
+
+RUN mkdir chainql
+WORKDIR /chainql
+
+RUN git clone -b {{ CHAINQL }} --depth 1 https://github.com/UniqueNetwork/chainql.git . && \
+    cargo build --release
+
+# ===== RUN ======
+
+FROM ubuntu:22.04 as builder-chainql
+
+COPY --from=builder-chainql-bin /chainql/target/release/chainql /chainql/target/release/chainql
modified.envdiffbeforeafterboth
--- a/.env
+++ b/.env
@@ -11,6 +11,8 @@
 ASTAR_BUILD_BRANCH=v5.11.0
 UNIQUE_MAINNET_BRANCH=release-v942057
 UNIQUE_REPLICA_FROM=wss://ws.unique.network:443
+POLKADEX_BUILD_BRANCH=v1.1.0
+
 
 KUSAMA_MAINNET_BRANCH=release-v1.0.0
 STATEMINE_BUILD_BRANCH=release-parachains-v9430
modified.github/workflows/ci-develop.ymldiffbeforeafterboth
--- a/.github/workflows/ci-develop.yml
+++ b/.github/workflows/ci-develop.yml
@@ -5,7 +5,7 @@
 # Triger: PR at 'develop' branch with following types of events.
 on:
   pull_request:
-    branches: [ 'develop' ]
+    branches: [ 'develop', 'ci/baedeker' ]
     types: [ opened, reopened, synchronize, ready_for_review, converted_to_draft ]
 
 #Concurency group for control execution queue over github runners.
modified.github/workflows/xcm.ymldiffbeforeafterboth
--- a/.github/workflows/xcm.yml
+++ b/.github/workflows/xcm.yml
@@ -40,9 +40,7 @@
         id: create_matrix
         with:
           matrix: |
-            network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.WESTMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testXcmOpal}, runtime_features {opal-runtime}
-            network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINE_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, runtest {testXcmQuartz}, runtime_features {quartz-runtime}
-            network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testXcmUnique}, runtime_features {unique-runtime}
+            network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testXcmUnique}, runtime_features {unique-runtime}
 
   xcm-build:
 
@@ -251,6 +249,40 @@
             fi
         shell: bash
 
+      # Check POLKADEX version and build it if it doesn't exist in repository
+      - name: Generate ENV related extend Dockerfile file for POLKADEX
+        uses: cuchi/jinja2-action@v1.2.0
+        with:
+          template: .docker/Dockerfile-polkadex.j2
+          output_file: .docker/Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml
+          variables: |
+            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+            POLKADEX_BUILD_BRANCH=${{ matrix.polkadex_version }}
+
+      - name: Check if the dockerhub repository contains the needed POLKADEX version
+        run: |
+          # aquire token
+            TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
+            export TOKEN=$TOKEN
+
+          # Get TAGS from DOCKERHUB repository
+            POLKADEX_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadex/tags/?page_size=100 | jq -r '."results"[]["name"]')
+          # Show TAGS
+            echo "POLKADEX TAGS:"
+            echo $POLKADEX_TAGS
+          # Check correct version POLKADEX and build it if it doesn't exist in POLKADEX TAGS
+            if [[ ${POLKADEX_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.polkadex_version }}"($|[[:space:]]) ]]; then
+                echo "Repository has needed POLKADEX version";
+                docker pull uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}
+            else
+                echo "Repository has not needed POLKADEX version, so build it";
+                cd .docker/ && docker build --file ./Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml --tag uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} .
+                echo "Push needed POLKADEX version to the repository";
+                docker push uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}
+            fi
+        shell: bash
+
+
       - name: Run find-and-replace to remove slashes from branch name
         uses: mad9000/actions-find-and-replace-string@4
         id: branchname
@@ -294,6 +326,7 @@
             snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}'}})
             snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}'}})
             snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'uniquenetwork/builder-astar:${{ matrix.astar_version }}'}})
+            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}'}})
 
       - name: Upload network config
         uses: actions/upload-artifact@v3