git.delta.rocks / unique-network / refs/commits / 86762e7112de

difftreelog

ci use baedeker for xcm workflow

Yaroslav Bolyukin2023-08-25parent: #b8ffe22.patch.diff
in: master

8 files changed

added.baedeker/.gitkeepdiffbeforeafterboth

no syntactic changes

added.baedeker/xcm-opal.jsonnetdiffbeforeafterboth

no changes

added.baedeker/xcm-quartz.jsonnetdiffbeforeafterboth

no changes

added.baedeker/xcm-unique.jsonnetdiffbeforeafterboth

no changes

modified.dockerignorediffbeforeafterboth
1.git/1.git/
2.github/2.github/
3.docker/
4.baedeker/
3doc/5doc/
4target/6target/
5chain-data*/7chain-data*/
6smart_contract/8smart_contract/
7Dockerfile-parachain9Dockerfile-parachain
8docker-compose-tests-parachain.yml10docker-compose-tests-parachain.yml
11*.log
12/*.json
913
modified.github/actions/prepare/action.ymldiffbeforeafterboth
14 shell: bash 14 shell: bash
15 run: | 15 run: |
16 echo "LAST_COMMIT_SHA=${GITHUB_SHA}" >> ${GITHUB_ENV}16 echo "LAST_COMMIT_SHA=${GITHUB_SHA}" >> ${GITHUB_ENV}
17 - name: Set build SHA
18 shell: bash
19 run: |
20 echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV
21
modified.github/workflows/xcm.ymldiffbeforeafterboth
39 uses: CertainLach/create-matrix-action@v439 uses: CertainLach/create-matrix-action@v4
40 id: create_matrix40 id: create_matrix
41 with:41 with:
42 matrix: |42 matrix: |
43 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}43 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}
44 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}44 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}
45 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}45 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}
4646
47 xcm-build:47 xcm-build:
48 48
73 with:73 with:
74 ref: ${{ github.head_ref }} #Checking out head commit74 ref: ${{ github.head_ref }} #Checking out head commit
7575
76 # Prepare SHA 76 # Prepare SHA
77 - name: Prepare SHA77 - name: Prepare SHA
78 uses: ./.github/actions/prepare78 uses: ./.github/actions/prepare
7979
97 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}97 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}
9898
99 - name: Check if the dockerhub repository contains the needed version POLKADOT99 - name: Check if the dockerhub repository contains the needed version POLKADOT
100 run: |100 run: |
101 # aquire token101 # aquire token
102 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)102 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)
103 export TOKEN=$TOKEN103 export TOKEN=$TOKEN
104104
105 # Get TAGS from DOCKERHUB POLKADOT repository105 # Get TAGS from DOCKERHUB POLKADOT repository
106 POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]')106 POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]')
107 # Show TAGS107 # Show TAGS
108 echo "POLKADOT TAGS:"108 echo "POLKADOT TAGS:"
109 echo $POLKADOT_TAGS109 echo $POLKADOT_TAGS
110 # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS110 # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS
111 if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then111 if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then
112 echo "Repository has needed POLKADOT version";112 echo "Repository has needed POLKADOT version";
113 docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}113 docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}
114 else114 else
115 echo "Repository has not needed POLKADOT version, so build it";115 echo "Repository has not needed POLKADOT version, so build it";
116 cd .docker/ && docker build --no-cache --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} .116 cd .docker/ && docker build --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} .
117 echo "Push needed POLKADOT version to the repository";117 echo "Push needed POLKADOT version to the repository";
118 docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}118 docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}
119 fi119 fi
120 shell: bash120 shell: bash
121121
122 # Check ACALA version and build it if it doesn't exist in repository122 # Check ACALA version and build it if it doesn't exist in repository
130 ACALA_BUILD_BRANCH=${{ matrix.acala_version }}130 ACALA_BUILD_BRANCH=${{ matrix.acala_version }}
131131
132 - name: Check if the dockerhub repository contains the needed ACALA version132 - name: Check if the dockerhub repository contains the needed ACALA version
133 run: |133 run: |
134 # aquire token134 # aquire token
135 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)135 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)
136 export TOKEN=$TOKEN136 export TOKEN=$TOKEN
137137
138 # Get TAGS from DOCKERHUB repository138 # Get TAGS from DOCKERHUB repository
139 ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]')139 ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]')
140 # Show TAGS140 # Show TAGS
141 echo "ACALA TAGS:"141 echo "ACALA TAGS:"
142 echo $ACALA_TAGS142 echo $ACALA_TAGS
143 # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS143 # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS
144 if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then144 if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then
145 echo "Repository has needed ACALA version";145 echo "Repository has needed ACALA version";
146 docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }}146 docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }}
147 else147 else
148 echo "Repository has not needed ACALA version, so build it";148 echo "Repository has not needed ACALA version, so build it";
149 cd .docker/ && docker build --no-cache --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} .149 cd .docker/ && docker build --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} .
150 echo "Push needed ACALA version to the repository";150 echo "Push needed ACALA version to the repository";
151 docker push uniquenetwork/builder-acala:${{ matrix.acala_version }}151 docker push uniquenetwork/builder-acala:${{ matrix.acala_version }}
152 fi152 fi
153 shell: bash153 shell: bash
154154
155 # Check MOONBEAM version and build it if it doesn't exist in repository155 # Check MOONBEAM version and build it if it doesn't exist in repository
163 MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}163 MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}
164164
165 - name: Check if the dockerhub repository contains the needed MOONBEAM version165 - name: Check if the dockerhub repository contains the needed MOONBEAM version
166 run: |166 run: |
167 # aquire token167 # aquire token
168 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)168 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)
169 export TOKEN=$TOKEN169 export TOKEN=$TOKEN
170170
171 # Get TAGS from DOCKERHUB repository171 # Get TAGS from DOCKERHUB repository
172 MOONBEAM_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-moonbeam/tags/?page_size=100 | jq -r '."results"[]["name"]')172 MOONBEAM_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-moonbeam/tags/?page_size=100 | jq -r '."results"[]["name"]')
173 # Show TAGS173 # Show TAGS
174 echo "MOONBEAM TAGS:"174 echo "MOONBEAM TAGS:"
175 echo $MOONBEAM_TAGS175 echo $MOONBEAM_TAGS
176 # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS176 # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS
177 if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then177 if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then
178 echo "Repository has needed MOONBEAM version";178 echo "Repository has needed MOONBEAM version";
179 docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}179 docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}
180 else180 else
181 echo "Repository has not needed MOONBEAM version, so build it";181 echo "Repository has not needed MOONBEAM version, so build it";
182 cd .docker/ && docker build --no-cache --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} .182 cd .docker/ && docker build --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} .
183 echo "Push needed MOONBEAM version to the repository";183 echo "Push needed MOONBEAM version to the repository";
184 docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}184 docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}
185 fi185 fi
186 shell: bash186 shell: bash
187187
188 # Check CUMULUS version and build it if it doesn't exist in repository188 # Check CUMULUS version and build it if it doesn't exist in repository
196 CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}196 CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}
197197
198 - name: Check if the dockerhub repository contains the needed CUMULUS version198 - name: Check if the dockerhub repository contains the needed CUMULUS version
199 run: | 199 run: |
200 # aquire token200 # aquire token
201 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)201 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)
202 export TOKEN=$TOKEN202 export TOKEN=$TOKEN
203203
204 # Get TAGS from DOCKERHUB repository204 # Get TAGS from DOCKERHUB repository
205 CUMULUS_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-cumulus/tags/?page_size=100 | jq -r '."results"[]["name"]')205 CUMULUS_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-cumulus/tags/?page_size=100 | jq -r '."results"[]["name"]')
206 # Show TAGS206 # Show TAGS
207 echo "CUMULUS TAGS:"207 echo "CUMULUS TAGS:"
208 echo $CUMULUS_TAGS208 echo $CUMULUS_TAGS
209 # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS209 # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS
210 if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then210 if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then
211 echo "Repository has needed CUMULUS version";211 echo "Repository has needed CUMULUS version";
212 docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}212 docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}
213 else213 else
214 echo "Repository has not needed CUMULUS version, so build it";214 echo "Repository has not needed CUMULUS version, so build it";
215 cd .docker/ && docker build --no-cache --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} .215 cd .docker/ && docker build --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} .
216 echo "Push needed CUMULUS version to the repository";216 echo "Push needed CUMULUS version to the repository";
217 docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}217 docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}
218 fi218 fi
219 shell: bash219 shell: bash
220220
221 # Check ASTAR version and build it if it doesn't exist in repository221 # Check ASTAR version and build it if it doesn't exist in repository
229 ASTAR_BUILD_BRANCH=${{ matrix.astar_version }}229 ASTAR_BUILD_BRANCH=${{ matrix.astar_version }}
230230
231 - name: Check if the dockerhub repository contains the needed ASTAR version231 - name: Check if the dockerhub repository contains the needed ASTAR version
232 run: |232 run: |
233 # aquire token233 # aquire token
234 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)234 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)
235 export TOKEN=$TOKEN235 export TOKEN=$TOKEN
236236
237 # Get TAGS from DOCKERHUB repository237 # Get TAGS from DOCKERHUB repository
238 ASTAR_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-astar/tags/?page_size=100 | jq -r '."results"[]["name"]')238 ASTAR_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-astar/tags/?page_size=100 | jq -r '."results"[]["name"]')
239 # Show TAGS239 # Show TAGS
240 echo "ASTAR TAGS:"240 echo "ASTAR TAGS:"
241 echo $ASTAR_TAGS241 echo $ASTAR_TAGS
242 # Check correct version ASTAR and build it if it doesn't exist in ASTAR TAGS242 # Check correct version ASTAR and build it if it doesn't exist in ASTAR TAGS
243 if [[ ${ASTAR_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.astar_version }}"($|[[:space:]]) ]]; then243 if [[ ${ASTAR_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.astar_version }}"($|[[:space:]]) ]]; then
244 echo "Repository has needed ASTAR version";244 echo "Repository has needed ASTAR version";
245 docker pull uniquenetwork/builder-astar:${{ matrix.astar_version }}245 docker pull uniquenetwork/builder-astar:${{ matrix.astar_version }}
246 else246 else
247 echo "Repository has not needed ASTAR version, so build it";247 echo "Repository has not needed ASTAR version, so build it";
248 cd .docker/ && docker build --no-cache --file ./Dockerfile-astar.${{ matrix.astar_version }}.yml --tag uniquenetwork/builder-astar:${{ matrix.astar_version }} .248 cd .docker/ && docker build --file ./Dockerfile-astar.${{ matrix.astar_version }}.yml --tag uniquenetwork/builder-astar:${{ matrix.astar_version }} .
249 echo "Push needed ASTAR version to the repository";249 echo "Push needed ASTAR version to the repository";
250 docker push uniquenetwork/builder-astar:${{ matrix.astar_version }}250 docker push uniquenetwork/builder-astar:${{ matrix.astar_version }}
251 fi251 fi
252 shell: bash252 shell: bash
253253
254
255 # Check CHAINQL version and build it if it doesn't exist in repository
256 - name: Generate ENV related extend Dockerfile file for CHAINQL254 - name: Run find-and-replace to remove slashes from branch name
257 uses: cuchi/jinja2-action@v1.2.0255 uses: mad9000/actions-find-and-replace-string@4
256 id: branchname
258 with:257 with:
259 template: .docker/Dockerfile-chainql.j2258 source: ${{ github.head_ref }}
260 output_file: .docker/Dockerfile-chainql.${{ env.CHAINQL }}.yml259 find: '/'
261 variables: |260 replace: '-'
262 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}261
263 CHAINQL=${{ env.CHAINQL }}262 - name: Build unique-chain
263 run: |
264 docker build --file .docker/Dockerfile-unique \
265 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \
266 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \
267 --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-${{ env.BUILD_SHA }} \
268 .
264269
265 - name: Check if the dockerhub repository contains the needed CHAINQL version270 - name: Push docker image version
266 run: |271 run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-${{ env.BUILD_SHA }}
267 # aquire token
268 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)
269 export TOKEN=$TOKEN
270
271 # Get TAGS from DOCKERHUB repository
272 CHAINQL_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-chainql/tags/?page_size=100 | jq -r '."results"[]["name"]')
273 # Show TAGS
274 echo "CHAINQL TAGS:"
275 echo $CHAINQL_TAGS
276 # Check correct version CHAINQL and build it if it doesn't exist in CHAINQL TAGS
277 if [[ ${CHAINQL_TAGS[*]} =~ (^|[[:space:]])"${{ env.CHAINQL }}"($|[[:space:]]) ]]; then
278 echo "Repository has needed CHAINQL version";
279 docker pull uniquenetwork/builder-chainql:${{ env.CHAINQL }}
280 else
281 echo "Repository has not needed CHAINQL version, so build it";
282 cd .docker/ && docker build --no-cache --file ./Dockerfile-chainql.${{ env.CHAINQL }}.yml --tag uniquenetwork/builder-chainql:${{ env.CHAINQL }} .
283 echo "Push needed CHAINQL version to the repository";
284 docker push uniquenetwork/builder-chainql:${{ env.CHAINQL }}
285 fi
286 shell: bash
287
288 # - name: Pull chainql docker image
289 # run: docker pull uniquenetwork/builder-chainql:${{ env.CHAINQL }}
290272
291 - name: Generate ENV related extend launch-config file273 - uses: actions/setup-node@v3.5.1
292 uses: cuchi/jinja2-action@v1.2.0
293 with:274 with:
294 template: .docker/xcm-config/launch-config-xcm-${{ matrix.network }}.j2
295 output_file: .docker/xcm-config/launch-config-xcm-${{ matrix.network }}.json275 node-version: 16
296 variables: |276
297 RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }} 277 - name: Install baedeker
278 uses: UniqueNetwork/baedeker-action/setup@built
298279
299 - name: Show launch-config-xcm-${{ matrix.network }} configuration280 - name: Start network
281 uses: UniqueNetwork/baedeker-action@built
282 id: bdk
283 with:
300 run: cat .docker/xcm-config/launch-config-xcm-${{ matrix.network }}.json284 inputs: |
301285 .baedeker/xcm-${{ matrix.network }}.jsonnet
302 # Build main image for XCM 286 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}'}})
287 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-${{ env.BUILD_SHA }}'}})
288 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'uniquenetwork/builder-acala:${{ matrix.acala_version }}'}})
289 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}'}})
290 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}'}})
291 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'uniquenetwork/builder-astar:${{ matrix.astar_version }}'}})
292
303 - name: Generate ENV related extend Dockerfile file293 - name: Upload network config
304 uses: cuchi/jinja2-action@v1.2.0294 uses: actions/upload-artifact@v3
305 with:295 with:
306 template: .docker/Dockerfile-xcm.j2296 name: ${{ matrix.network }}-network-config
307 output_file: .docker/Dockerfile-xcm.${{ matrix.network }}.yml297 path: ${{ steps.bdk.outputs.composeProject }}
308 variables: |298 retention-days: 2
309 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
310 NETWORK=${{ matrix.network }}
311 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}
312 POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
313 BRANCH=${{ github.head_ref }}
314 ACALA_BUILD_BRANCH=${{ matrix.acala_version }}
315 ASTAR_BUILD_BRANCH=${{ matrix.astar_version }}
316 MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }}
317 CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }}
318 CHAINQL=${{ env.CHAINQL }}
319299
320 - name: Show build Dockerfile300 - name: Run XCM tests
301 working-directory: tests
321 run: cat .docker/Dockerfile-xcm.${{ matrix.network }}.yml302 run: |
303 yarn install
304 yarn add mochawesome
305 ./scripts/wait_for_first_block.sh
306 echo "Ready to start tests"
307 yarn polkadot-types
308 NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}
309 env:
310 RPC_URL: http://${{ steps.bdk.outputs.balancer }}/relay-${{ matrix.network }}/
311 SUBSTRATE_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-${{ matrix.network }}/
312 RELAY_URL: ws://${{ steps.bdk.outputs.balancer }}/relay/
313 ACALA_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-acala/
314 MOONBEAM_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-moonbeam/
315 ASTAR_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-astar/
316 SHIDEN_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-shiden/
317 WESTMINT_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-westmint/
318 STATEMINE_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-statemine/
319 STATEMINT_URL: ws://${{ steps.bdk.outputs.balancer }}/relay-statemint/
322320
323 - name: Run find-and-replace to remove slashes from branch name321 - name: XCM Test Report
324 uses: mad9000/actions-find-and-replace-string@4322 uses: phoenix-actions/test-reporting@v10
325 id: branchname323 id: test-report
324 if: success() || failure()
326 with:325 with:
327 source: ${{ github.head_ref }}326 name: XCM Tests ${{ matrix.network }}
328 find: '/'327 path: tests/mochawesome-report/test-*.json
329 replace: '-'328 reporter: mochawesome-json
329 fail-on-error: 'false'
330330
331 - name: Set build SHA331 - name: Clean Workspace
332 shell: bash332 if: always()
333 run: |333 uses: AutoModality/action-clean@v1.1.0
334 echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV
335
336 - name: Build the stack
337 run: cd .docker/ && docker build --no-cache --file ./Dockerfile-xcm.${{ matrix.network }}.yml --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA .
338
339 - name: Push docker image version
340 run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA
341334
342 - name: Remove builder cache335 - name: Remove builder cache
343 if: always() # run this step always336 if: always()
344 run: |337 run: |
345 docker builder prune -f338 docker system prune -a -f
346 docker system prune -f
347
348 xcm-tests:
349 needs: [prepare-execution-marix, xcm-build]
350 # The type of runner that the job will run on
351 runs-on: [XL]
352
353 timeout-minutes: 600
354
355 name: ${{ matrix.network }}-tests
356
357 continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.
358
359 strategy:
360 matrix:
361 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
362
363 steps:
364 - name: Skip if pull request is in Draft
365 if: github.event.pull_request.draft == true
366 run: exit 1
367
368 - name: Clean Workspace
369 uses: AutoModality/action-clean@v1.1.0
370
371 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
372 - uses: actions/checkout@v3.1.0
373 with:
374 ref: ${{ github.head_ref }} #Checking out head commit
375
376 - name: Prepare
377 uses: ./.github/actions/prepare
378
379 - name: Set build SHA
380 shell: bash
381 run: |
382 echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV
383
384 - name: Run find-and-replace to remove slashes from branch name
385 uses: mad9000/actions-find-and-replace-string@4
386 id: branchname
387 with:
388 source: ${{ github.head_ref }}
389 find: '/'
390 replace: '-'
391
392 - name: Read .env file
393 uses: xom9ikk/dotenv@v2
394
395 - name: Generate ENV related extend file for docker-compose
396 uses: cuchi/jinja2-action@v1.2.0
397 with:
398 template: .docker/docker-compose.xcm.j2
399 output_file: .docker/docker-compose.xcm.${{ matrix.network }}.yml
400 variables: |
401 NETWORK=${{ matrix.network }}
402 BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA
403
404 - name: Show build configuration
405 run: cat .docker/docker-compose.xcm.${{ matrix.network }}.yml
406
407 - uses: actions/setup-node@v3.5.1
408 with:
409 node-version: 16
410
411 - name: Log in to Docker Hub
412 uses: docker/login-action@v2.1.0
413 with:
414 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}
415 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}
416
417 - name: Build the stack
418 run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300
419
420 # 🚀 POLKADOT LAUNCH COMPLETE 🚀
421 - name: Check if docker logs consist messages related to testing of xcm tests
422 if: success()
423 run: |
424 counter=160
425 function check_container_status {
426 docker inspect -f {{.State.Running}} xcm-${{ matrix.network }}-local
427 }
428 function do_docker_logs {
429 docker logs --details xcm-${{ matrix.network }}-local 2>&1
430 }
431 function is_started {
432 if [ "$(check_container_status)" == "true" ]; then
433 echo "Container: xcm-${{ matrix.network }}-local RUNNING";
434 echo "Check Docker logs"
435 DOCKER_LOGS=$(do_docker_logs)
436 if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then
437 echo "🚀 POLKADOT LAUNCH COMPLETE 🚀"
438 return 0
439 else
440 echo "Message not found in logs output, repeating..."
441 return 1
442 fi
443 else
444 echo "Container xcm-${{ matrix.network }}-local NOT RUNNING"
445 echo "Halting all future checks"
446 exit 1
447 fi
448 echo "something goes wrong"
449 exit 1
450 }
451 while ! is_started; do
452 echo "Waiting for special message in log files "
453 sleep 30s
454 counter=$(( $counter - 1 ))
455 echo "Counter: $counter"
456 if [ "$counter" -gt "0" ]; then
457 continue
458 else
459 break
460 fi
461 done
462 echo "Halting script"
463 exit 0
464 shell: bash
465
466 - name: Run XCM tests
467 working-directory: tests
468 run: |
469 yarn install
470 yarn add mochawesome
471 ./scripts/wait_for_first_block.sh
472 echo "Ready to start tests"
473 yarn polkadot-types
474 NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}
475 env:
476 RPC_URL: http://127.0.0.1:9944/
477
478 - name: XCM Test Report
479 uses: phoenix-actions/test-reporting@v10
480 id: test-report
481 if: success() || failure() # run this step even if previous step failed
482 with:
483 name: XCM Tests ${{ matrix.network }} # Name of the check run which will be created
484 path: tests/mochawesome-report/test-*.json # Path to test results
485 reporter: mochawesome-json
486 fail-on-error: 'false'
487
488 - name: Show container logs
489 if: always() # run this step always
490 run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" logs
491
492 - name: Stop running containers
493 if: always() # run this step always
494 run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" down
495
496 - name: Clean Workspace
497 if: always()
498 uses: AutoModality/action-clean@v1.1.0
499
500 - name: Remove builder cache
501 if: always() # run this step always
502 run: |
503 docker system prune -a -f
504339
modifiedtests/src/config.tsdiffbeforeafterboth
17import process from 'process';17import process from 'process';
1818
19const config = {19const config = {
20 substrateUrl: process.env.substrateUrl || 'ws://127.0.0.1:9944',20 substrateUrl: process.env.SUBSTRATE_URL || 'ws://127.0.0.1:9944',
21 relayUrl: process.env.relayUrl || 'ws://127.0.0.1:9844',21 relayUrl: process.env.RELAY_URL || 'ws://127.0.0.1:9844',
22 acalaUrl: process.env.acalaUrl || 'ws://127.0.0.1:9946',22 acalaUrl: process.env.ACALA_URL || 'ws://127.0.0.1:9946',
23 karuraUrl: process.env.acalaUrl || 'ws://127.0.0.1:9946',23 karuraUrl: process.env.ACALA_URL || 'ws://127.0.0.1:9946',
24 moonbeamUrl: process.env.moonbeamUrl || 'ws://127.0.0.1:9947',24 moonbeamUrl: process.env.MOONBEAM_URL || 'ws://127.0.0.1:9947',
25 moonriverUrl: process.env.moonbeamUrl || 'ws://127.0.0.1:9947',25 moonriverUrl: process.env.MOONBEAM_URL || 'ws://127.0.0.1:9947',
26 astarUrl: process.env.astarUrl || 'ws://127.0.0.1:9949',26 astarUrl: process.env.ASTAR_URL || 'ws://127.0.0.1:9949',
27 shidenUrl: process.env.shidenUrl || 'ws://127.0.0.1:9949',27 shidenUrl: process.env.SHIDEN_URL || 'ws://127.0.0.1:9949',
28 westmintUrl: process.env.westmintUrl || 'ws://127.0.0.1:9948',28 westmintUrl: process.env.WESTMINT_URL || 'ws://127.0.0.1:9948',
29 statemineUrl: process.env.statemineUrl || 'ws://127.0.0.1:9948',29 statemineUrl: process.env.STATEMINE_URL || 'ws://127.0.0.1:9948',
30 statemintUrl: process.env.statemintUrl || 'ws://127.0.0.1:9948',30 statemintUrl: process.env.STATEMINT_URL || 'ws://127.0.0.1:9948',
31};31};
3232
33export default config;33export default config;