mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-09 09:27:24 +00:00
eaf1bc5633
This PR introduces the new crate `developer_hub` into the polkadot-sdk repo. The vision for the developer-hub crate is detailed in [this document](https://docs.google.com/document/d/1XLLkFNE8v8HLvZpI2rzsa8N2IN1FcKntc8q-Sc4xBAk/edit?usp=sharing). <img width="1128" alt="Screenshot 2023-11-02 at 10 45 48" src="https://github.com/paritytech/polkadot-sdk/assets/5588131/1e12b60f-fef5-42c4-8503-a3ba234077c3"> Other than adding the new crate, it also does the following: * Remove the `substrate` crate, as there is now a unique umbrella crate for multiple things in `developer_hub::polkadot_sdk`. * (backport candidate) A minor change to `frame-support` macros that allows `T::RuntimeOrigin` to also be acceptable as the origin type. * (backport candidate) A minor change to `frame-system` that allows us to deposit events at genesis because now the real genesis config is generated via wasm, and we can safely assume `cfg!(feature = "std")` means only testing. related to #62. * (backport candidate) Introduces a small `read_events_for_pallet` to `frame_system` for easier event reading in tests. * From https://github.com/paritytech/polkadot-sdk-docs/issues/31, it takes action on improving the `pallet::call` docs. * From https://github.com/paritytech/polkadot-sdk-docs/issues/31, it takes action on improving the `UncheckedExtrinsic` docs. ## Way Forward First, a version of this is deployed temporarily [here](https://blog.kianenigma.nl/polkadot-sdk/developer_hub/index.html). I will keep it up to date on a daily basis. ### This Pull Request I see two ways forward: 1. We acknowledge that everything in `developer-hub` is going to be WIP, and merge this asap. We should not yet use links to this crate anywhere. 2. We make this be the feature branch, make PRs against this, and either gradually backport it, or only merge to master once it is done. I am personally in favor of option 1. If we stick to option 2, we need a better way to deploy a staging version of this to gh-pages. ### Issue Tracking The main issues related to the future of `developer_hub` are: - https://github.com/paritytech/polkadot-sdk-docs/issues/31 - https://github.com/paritytech/polkadot-sdk-docs/issues/4 - https://github.com/paritytech/polkadot-sdk-docs/issues/26 - https://github.com/paritytech/polkadot-sdk-docs/issues/32 - https://github.com/paritytech/polkadot-sdk-docs/issues/36 ### After This Pull Request - [ ] create a redirect for https://paritytech.github.io/polkadot-sdk/master/substrate/ - [x] analytics - [ ] link checker - [ ] the matter of publishing, and how all of these relative links for when we do, that is still an open question. There is section on this in the landing page. - [ ] updated https://paritytech.github.io/ --------- Co-authored-by: Liam Aharon <liam.aharon@hotmail.com> Co-authored-by: Juan Girini <juangirini@gmail.com> Co-authored-by: bader y <ibnbassem@gmail.com> Co-authored-by: Sebastian Kunert <skunert49@gmail.com> Co-authored-by: James Wilson <james@jsdw.me> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
375 lines
14 KiB
YAML
375 lines
14 KiB
YAML
# This file is part of .gitlab-ci.yml
|
|
# Here are all jobs that are executed during "build" stage
|
|
|
|
# build jobs from polkadot
|
|
|
|
build-linux-stable:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
variables:
|
|
RUST_TOOLCHAIN: stable
|
|
# Enable debug assertions since we are running optimized builds for testing
|
|
# but still want to have debug assertions.
|
|
RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
|
|
# Ensure we run the UI tests.
|
|
RUN_UI_TESTS: 1
|
|
script:
|
|
- time cargo build --locked --profile testnet --features pyroscope,fast-runtime --bin polkadot --bin polkadot-prepare-worker --bin polkadot-execute-worker
|
|
- time ROCOCO_EPOCH_DURATION=10 ./polkadot/scripts/build-only-wasm.sh rococo-runtime $(pwd)/runtimes/rococo-runtime-10/
|
|
- time ROCOCO_EPOCH_DURATION=100 ./polkadot/scripts/build-only-wasm.sh rococo-runtime $(pwd)/runtimes/rococo-runtime-100/
|
|
- time ROCOCO_EPOCH_DURATION=600 ./polkadot/scripts/build-only-wasm.sh rococo-runtime $(pwd)/runtimes/rococo-runtime-600/
|
|
- pwd
|
|
- ls -alR runtimes
|
|
# pack artifacts
|
|
- mkdir -p ./artifacts
|
|
- VERSION="${CI_COMMIT_REF_NAME}" # will be tag or branch name
|
|
- mv ./target/testnet/polkadot ./artifacts/.
|
|
- mv ./target/testnet/polkadot-prepare-worker ./artifacts/.
|
|
- mv ./target/testnet/polkadot-execute-worker ./artifacts/.
|
|
- mv ./runtimes/ ./artifacts/.
|
|
- pushd artifacts
|
|
- sha256sum polkadot | tee polkadot.sha256
|
|
- shasum -c polkadot.sha256
|
|
- popd
|
|
- EXTRATAG="${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}"
|
|
- echo "Polkadot version = ${VERSION} (EXTRATAG = ${EXTRATAG})"
|
|
- echo -n ${VERSION} > ./artifacts/VERSION
|
|
- echo -n ${EXTRATAG} > ./artifacts/EXTRATAG
|
|
- echo -n ${CI_JOB_ID} > ./artifacts/BUILD_LINUX_JOB_ID
|
|
- RELEASE_VERSION=$(./artifacts/polkadot -V | awk '{print $2}'| awk -F "-" '{print $1}')
|
|
- echo -n "v${RELEASE_VERSION}" > ./artifacts/BUILD_RELEASE_VERSION
|
|
- cp -r docker/* ./artifacts
|
|
|
|
build-test-collators:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
script:
|
|
- time cargo build --locked --profile testnet -p test-parachain-adder-collator
|
|
- time cargo build --locked --profile testnet -p test-parachain-undying-collator
|
|
# pack artifacts
|
|
- mkdir -p ./artifacts
|
|
- mv ./target/testnet/adder-collator ./artifacts/.
|
|
- mv ./target/testnet/undying-collator ./artifacts/.
|
|
- echo -n "${CI_COMMIT_REF_NAME}" > ./artifacts/VERSION
|
|
- echo -n "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" > ./artifacts/EXTRATAG
|
|
- echo "adder-collator version = $(cat ./artifacts/VERSION) (EXTRATAG = $(cat ./artifacts/EXTRATAG))"
|
|
- echo "undying-collator version = $(cat ./artifacts/VERSION) (EXTRATAG = $(cat ./artifacts/EXTRATAG))"
|
|
- cp -r ./docker/* ./artifacts
|
|
|
|
build-malus:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
script:
|
|
- time cargo build --locked --profile testnet -p polkadot-test-malus --bin malus --bin polkadot-prepare-worker --bin polkadot-execute-worker
|
|
# pack artifacts
|
|
- mkdir -p ./artifacts
|
|
- mv ./target/testnet/malus ./artifacts/.
|
|
- mv ./target/testnet/polkadot-execute-worker ./artifacts/.
|
|
- mv ./target/testnet/polkadot-prepare-worker ./artifacts/.
|
|
- echo -n "${CI_COMMIT_REF_NAME}" > ./artifacts/VERSION
|
|
- echo -n "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" > ./artifacts/EXTRATAG
|
|
- echo "polkadot-test-malus = $(cat ./artifacts/VERSION) (EXTRATAG = $(cat ./artifacts/EXTRATAG))"
|
|
- cp -r ./docker/* ./artifacts
|
|
|
|
build-rustdoc:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
variables:
|
|
SKIP_WASM_BUILD: 1
|
|
RUSTDOCFLAGS: ""
|
|
artifacts:
|
|
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
|
|
when: on_success
|
|
expire_in: 1 days
|
|
paths:
|
|
- ./crate-docs/
|
|
script:
|
|
# FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features`
|
|
- time cargo doc --features try-runtime,experimental --workspace --no-deps
|
|
- rm -f ./target/doc/.lock
|
|
- mv ./target/doc ./crate-docs
|
|
# Inject Simple Analytics (https://www.simpleanalytics.com/) privacy preserving tracker into
|
|
# all .html files
|
|
- |
|
|
inject_simple_analytics() {
|
|
local path="$1"
|
|
local script_content="<script async defer src=\"https://apisa.parity.io/latest.js\"></script><noscript><img src=\"https://apisa.parity.io/latest.js\" alt=\"\" referrerpolicy=\"no-referrer-when-downgrade\" /></noscript>"
|
|
|
|
# Function that inject script into the head of an html file using sed.
|
|
process_file() {
|
|
local file="$1"
|
|
echo "Adding Simple Analytics script to $file"
|
|
sed -i "s|</head>|$script_content</head>|" "$file"
|
|
}
|
|
export -f process_file
|
|
# xargs runs process_file in seperate shells without access to outer variables.
|
|
# to make script_content available inside process_file, export it as an env var here.
|
|
export script_content
|
|
|
|
# Modify .html files in parallel using xargs, otherwise it can take a long time.
|
|
find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {}
|
|
}
|
|
inject_simple_analytics "./crate-docs"
|
|
- echo "<meta http-equiv=refresh content=0;url=developer_hub/index.html>" > ./crate-docs/index.html
|
|
|
|
build-implementers-guide:
|
|
stage: build
|
|
extends:
|
|
- .kubernetes-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
# git depth is set on purpose: https://github.com/paritytech/polkadot/issues/6284
|
|
variables:
|
|
GIT_STRATEGY: clone
|
|
GIT_DEPTH: 0
|
|
CI_IMAGE: paritytech/mdbook-utils:e14aae4a-20221123
|
|
script:
|
|
- mdbook build ./polkadot/roadmap/implementers-guide
|
|
- mkdir -p artifacts
|
|
- mv polkadot/roadmap/implementers-guide/book artifacts/
|
|
|
|
build-short-benchmark:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
script:
|
|
- cargo build --profile release --locked --features=runtime-benchmarks,on-chain-release-build --bin polkadot --workspace
|
|
- mkdir -p artifacts
|
|
- target/release/polkadot --version
|
|
- cp ./target/release/polkadot ./artifacts/
|
|
|
|
# build jobs from cumulus
|
|
|
|
build-linux-stable-cumulus:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
variables:
|
|
# Enable debug assertions since we are running optimized builds for testing
|
|
# but still want to have debug assertions.
|
|
RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
|
|
script:
|
|
- echo "___Building a binary, please refrain from using it in production since it goes with the debug assertions.___"
|
|
- time cargo build --release --locked -p polkadot-parachain-bin --bin polkadot-parachain
|
|
- echo "___Packing the artifacts___"
|
|
- mkdir -p ./artifacts
|
|
- mv ./target/release/polkadot-parachain ./artifacts/.
|
|
- echo "___The VERSION is either a tag name or the curent branch if triggered not by a tag___"
|
|
- echo ${CI_COMMIT_REF_NAME} | tee ./artifacts/VERSION
|
|
|
|
build-test-parachain:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
variables:
|
|
# Enable debug assertions since we are running optimized builds for testing
|
|
# but still want to have debug assertions.
|
|
RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
|
|
script:
|
|
- echo "___Building a binary, please refrain from using it in production since it goes with the debug assertions.___"
|
|
- time cargo build --release --locked -p cumulus-test-service --bin test-parachain
|
|
- echo "___Packing the artifacts___"
|
|
- mkdir -p ./artifacts
|
|
- mv ./target/release/test-parachain ./artifacts/.
|
|
- mkdir -p ./artifacts/zombienet
|
|
- mv ./target/release/wbuild/cumulus-test-runtime/wasm_binary_spec_version_incremented.rs.compact.compressed.wasm ./artifacts/zombienet/.
|
|
|
|
# build runtime only if files in $RUNTIME_PATH/$RUNTIME_NAME were changed
|
|
.build-runtime-template: &build-runtime-template
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .test-refs-no-trigger-prs-only
|
|
- .run-immediately
|
|
variables:
|
|
RUNTIME_PATH: "parachains/runtimes/assets"
|
|
script:
|
|
- cd ${RUNTIME_PATH}
|
|
- for directory in $(echo */); do
|
|
echo "_____Running cargo check for ${directory} ______";
|
|
cd ${directory};
|
|
pwd;
|
|
SKIP_WASM_BUILD=1 cargo check --locked;
|
|
cd ..;
|
|
done
|
|
|
|
# DAG: build-runtime-assets -> build-runtime-collectives -> build-runtime-bridge-hubs
|
|
# DAG: build-runtime-assets -> build-runtime-collectives -> build-runtime-contracts
|
|
# DAG: build-runtime-assets -> build-runtime-starters -> build-runtime-testing
|
|
build-runtime-assets:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/assets"
|
|
|
|
build-runtime-collectives:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/collectives"
|
|
# this is an artificial job dependency, for pipeline optimization using GitLab's DAGs
|
|
needs:
|
|
- job: build-runtime-assets
|
|
artifacts: false
|
|
|
|
build-runtime-bridge-hubs:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/bridge-hubs"
|
|
# this is an artificial job dependency, for pipeline optimization using GitLab's DAGs
|
|
needs:
|
|
- job: build-runtime-collectives
|
|
artifacts: false
|
|
|
|
build-runtime-contracts:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/contracts"
|
|
# this is an artificial job dependency, for pipeline optimization using GitLab's DAGs
|
|
needs:
|
|
- job: build-runtime-collectives
|
|
artifacts: false
|
|
|
|
build-runtime-starters:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/starters"
|
|
# this is an artificial job dependency, for pipeline optimization using GitLab's DAGs
|
|
needs:
|
|
- job: build-runtime-assets
|
|
artifacts: false
|
|
|
|
build-runtime-testing:
|
|
<<: *build-runtime-template
|
|
variables:
|
|
RUNTIME_PATH: "cumulus/parachains/runtimes/testing"
|
|
# this is an artificial job dependency, for pipeline optimization using GitLab's DAGs
|
|
needs:
|
|
- job: build-runtime-starters
|
|
artifacts: false
|
|
|
|
build-short-benchmark-cumulus:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
- .collect-artifacts
|
|
script:
|
|
- cargo build --profile release --locked --features=runtime-benchmarks,on-chain-release-build -p polkadot-parachain-bin --bin polkadot-parachain --workspace
|
|
- mkdir -p artifacts
|
|
- target/release/polkadot-parachain --version
|
|
- cp ./target/release/polkadot-parachain ./artifacts/
|
|
|
|
# substrate
|
|
|
|
build-linux-substrate:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .collect-artifacts
|
|
# DAG
|
|
needs:
|
|
- job: build-linux-stable
|
|
artifacts: false
|
|
variables:
|
|
# this variable gets overriden by "rusty-cachier environment inject", use the value as default
|
|
CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target"
|
|
before_script:
|
|
- mkdir -p ./artifacts/substrate/
|
|
# tldr: we need to checkout the branch HEAD explicitly because of our dynamic versioning approach while building the substrate binary
|
|
# see https://github.com/paritytech/ci_cd/issues/682#issuecomment-1340953589
|
|
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
|
|
script:
|
|
- WASM_BUILD_NO_COLOR=1 time cargo build --locked --release -p staging-node-cli
|
|
- mv $CARGO_TARGET_DIR/release/substrate-node ./artifacts/substrate/substrate
|
|
- echo -n "Substrate version = "
|
|
- if [ "${CI_COMMIT_TAG}" ]; then
|
|
echo "${CI_COMMIT_TAG}" | tee ./artifacts/substrate/VERSION;
|
|
else
|
|
./artifacts/substrate/substrate --version |
|
|
cut -d ' ' -f 2 | tee ./artifacts/substrate/VERSION;
|
|
fi
|
|
- sha256sum ./artifacts/substrate/substrate | tee ./artifacts/substrate/substrate.sha256
|
|
- cp -r ./docker/dockerfiles/substrate_injected.Dockerfile ./artifacts/substrate/
|
|
# - printf '\n# building node-template\n\n'
|
|
# - ./scripts/ci/node-template-release.sh ./artifacts/substrate/substrate-node-template.tar.gz
|
|
|
|
.build-subkey:
|
|
stage: build
|
|
extends:
|
|
- .docker-env
|
|
- .common-refs
|
|
- .run-immediately
|
|
# - .collect-artifact
|
|
variables:
|
|
# this variable gets overriden by "rusty-cachier environment inject", use the value as default
|
|
CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target"
|
|
before_script:
|
|
- mkdir -p ./artifacts/subkey
|
|
script:
|
|
- cd ./substrate/bin/utils/subkey
|
|
- SKIP_WASM_BUILD=1 time cargo build --locked --release
|
|
# - cd -
|
|
# - mv $CARGO_TARGET_DIR/release/subkey ./artifacts/subkey/.
|
|
# - echo -n "Subkey version = "
|
|
# - ./artifacts/subkey/subkey --version |
|
|
# sed -n -E 's/^subkey ([0-9.]+.*)/\1/p' |
|
|
# tee ./artifacts/subkey/VERSION;
|
|
# - sha256sum ./artifacts/subkey/subkey | tee ./artifacts/subkey/subkey.sha256
|
|
# - cp -r ./scripts/ci/docker/subkey.Dockerfile ./artifacts/subkey/
|
|
|
|
build-subkey-linux:
|
|
extends: .build-subkey
|
|
# DAG
|
|
needs:
|
|
- job: build-malus
|
|
artifacts: false
|
|
# tbd
|
|
# build-subkey-macos:
|
|
# extends: .build-subkey
|
|
# # duplicating before_script & script sections from .build-subkey hidden job
|
|
# # to overwrite rusty-cachier integration as it doesn't work on macos
|
|
# before_script:
|
|
# # skip timestamp script, the osx bash doesn't support printf %()T
|
|
# - !reference [.job-switcher, before_script]
|
|
# - mkdir -p ./artifacts/subkey
|
|
# script:
|
|
# - cd ./bin/utils/subkey
|
|
# - SKIP_WASM_BUILD=1 time cargo build --locked --release
|
|
# - cd -
|
|
# - mv ./target/release/subkey ./artifacts/subkey/.
|
|
# - echo -n "Subkey version = "
|
|
# - ./artifacts/subkey/subkey --version |
|
|
# sed -n -E 's/^subkey ([0-9.]+.*)/\1/p' |
|
|
# tee ./artifacts/subkey/VERSION;
|
|
# - sha256sum ./artifacts/subkey/subkey | tee ./artifacts/subkey/subkey.sha256
|
|
# - cp -r ./scripts/ci/docker/subkey.Dockerfile ./artifacts/subkey/
|
|
# after_script: [""]
|
|
# tags:
|
|
# - osx
|