difftreelog
ci add polkadex to xcm workflow
in: master
7 files changed
.baedeker/xcm-unique.jsonnetdiffbeforeafterboth1local2m = 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}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 ['unique', 'polkadex'],19 ]20 ])),21 }},22 nodes: {23 [name]: {24 bin: $.bin,25 wantedKeys: 'relay',26 },27 for name in ['alice', 'bob', 'charlie', 'dave', 'eve', 'ferdie', 'gregory']28 },29};3031local unique = {32 name: 'unique',33 bin: 'bin/unique',34 paraId: 1001,35 spec: {Genesis:{36 modify:: m.genericPara($),37 }},38 nodes: {39 [name]: {40 bin: $.bin,41 wantedKeys: 'para',42 },43 for name in ['alice', 'bob']44 },45};4647local acala = {48 name: 'acala',49 bin: 'bin/acala',50 paraId: 1002,51 spec: {Genesis:{52 chain: 'acala-dev',53 modify:: bdk.mixer([54 m.genericPara($),55 function(prev) prev {id+: '-local'},56 ]),57 }},58 nodes: {59 [name]: {60 bin: $.bin,61 wantedKeys: 'para',62 legacyRpc: true,63 },64 for name in ['alice', 'bob']65 },66};6768local moonbeam = {69 name: 'moonbeam',70 bin: 'bin/moonbeam',71 signatureSchema: 'Ethereum',72 paraId: 1003,73 spec: {Genesis:{74 chain: 'moonbeam-local',75 specFilePrefix: 'moonbeam-local-',76 modify:: m.genericPara($),77 }},78 nodes: {79 [name]: {80 bin: $.bin,81 wantedKeys: 'para-nimbus',82 legacyRpc: true,83 },84 for name in ['alice', 'bob']85 },86};8788local statemint = {89 name: 'statemint',90 bin: 'bin/cumulus',91 paraId: 1004,92 spec: {Genesis:{93 chain: 'statemint-local',94 modify:: m.genericPara($),95 }},96 nodes: {97 [name]: {98 bin: $.bin,99 wantedKeys: 'para-ed',100 },101 for name in ['alice', 'bob']102 },103};104105local astar = {106 name: 'astar',107 bin: 'bin/astar',108 paraId: 1005,109 spec: {Genesis:{110 chain: 'astar-dev',111 modify:: m.genericPara($),112 }},113 nodes: {114 [name]: {115 bin: $.bin,116 wantedKeys: 'para',117 legacyRpc: true,118 },119 for name in ['alice', 'bob']120 },121};122123local polkadex = {124 name: 'polkadex',125 bin: 'bin/polkadex',126 paraId: 1006,127 spec: {Genesis:{128 chain: 'mainnet',129 modify:: m.genericPara($),130 }},131 nodes: {132 [name]: {133 bin: $.bin,134 wantedKeys: 'para',135 },136 for name in ['alice', 'bob']137 },138};139140relay + {141 parachains: {142 [para.name]: para,143 for para in [unique, acala, moonbeam, statemint, astar, polkadex]144 },145}.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"]
.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"]
.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
.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
.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.
.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