Skip to content

🦖 update CI to Rust 1.74 (#2027) #2

🦖 update CI to Rust 1.74 (#2027)

🦖 update CI to Rust 1.74 (#2027) #2

Workflow file for this run

name: continuous-intergration/examples
on:
push:
branches:
- master
tags:
- v*
paths-ignore:
- 'README.md'
pull_request:
branches:
- master
paths:
- '.github/workflows/examples.yml'
jobs:
check:
name: examples
strategy:
matrix:
platform:
- macos-latest
- windows-latest
toolchain:
- stable
job:
- contract build
- test
runs-on: ${{ matrix.platform }}
env:
UPGRADEABLE_CONTRACTS: "forward-calls set-code-hash"
DELEGATOR_SUBCONTRACTS: "accumulator adder subber"
RUST_BACKTRACE: full
steps:
- name: Checkout sources & submodules
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: recursive
- name: Install toolchain
id: toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
components: rust-src
override: true
- name: Install cargo-dylint
uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 # v2.2.0
with:
crate: cargo-dylint
version: 1
- name: Install dylint-link
uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 # v2.2.0
with:
crate: dylint-link
version: 1
- name: Download and run latest `substrate-contracts-node` binary
if: matrix.os == 'macOS-latest'
run: |
curl -L -o substrate-contracts-node.zip 'https://gitlab.parity.io/parity/mirrors/substrate-contracts-node/-/jobs/artifacts/main/download?job=build-mac' && \
unzip substrate-contracts-node.zip && \
chmod +x artifacts/substrate-contracts-node-mac/substrate-contracts-node &&
./artifacts/substrate-contracts-node-mac/substrate-contracts-node -linfo,runtime::contracts=debug 2>&1 | tee /tmp/contracts-node.log &
- name: Install and run latest `substrate-contracts-node` binary
if: matrix.os == 'windows-latest'
run: |
cargo install contracts-node --git https://github.com/paritytech/substrate-contracts-node.git --force --locked && \
substrate-contracts-node -lruntime::contracts=debug 2>&1 | tee /tmp/contracts-node.log &
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Install `cargo-contract` `master`
uses: actions-rs/cargo@v1
with:
command: install
args: --git https://github.com/paritytech/cargo-contract.git
- name: Output versions
run: |
cargo -vV
cargo contract --version
- name: ${{ matrix.job }} examples on ${{ matrix.platform }}-${{ matrix.toolchain }}
if: matrix.os == 'windows-latest'
run: |
$delegator_subcontracts = "accumulator","adder","subber"
foreach ($contract in $delegator_subcontracts) {
echo "Processing delegator contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path integration-tests/delegator/${contract}/Cargo.toml;
}
$upgradeable_contracts = "forward-calls","set-code-hash"
foreach ($contract in $upgradeable_contracts) {
echo "Processing upgradeable contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path integration-tests/upgradeable-contracts/${contract}/Cargo.toml;
}
cargo ${{ matrix.job }} --verbose --manifest-path integration-tests/upgradeable-contracts/set-code-hash/updated-incrementer/Cargo.toml;
foreach ($example in Get-ChildItem -Directory "integration-tests\*") {
if ($example -Match 'upgradeable-contracts') { continue }
if ($example -Match 'lang-err-integration-tests') { continue }
echo "Processing example: $example";
cargo ${{ matrix.job }} --verbose --manifest-path=$example/Cargo.toml;
cargo clean --manifest-path=$example/Cargo.toml;
}
- name: ${{ matrix.job }} integration-tests on ${{ matrix.platform }}-${{ matrix.toolchain }}
if: matrix.os == 'macOS-latest'
run: |
for contract in ${DELEGATOR_SUBCONTRACTS}; do
echo "Processing delegator contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path integration-tests/delegator/${contract}/Cargo.toml;
done
for contract in ${UPGRADEABLE_CONTRACTS}; do
echo "Processing upgradeable contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path=integration-tests/upgradeable-contracts/$contract/Cargo.toml;
done
cargo ${{ matrix.job }} --verbose --manifest-path=integration-tests/upgradeable-contracts/set-code-hash/updated-incrementer/Cargo.toml;
for example in integration-tests/*/; do
if [ "$example" = "integration-tests/upgradeable-contracts/" ]; then continue; fi;
if [ "$example" = "integration-tests/lang-err-integration-tests/" ]; then continue; fi;
echo "Processing example: $example";
cargo ${{ matrix.job }} --verbose --manifest-path=$example/Cargo.toml;
done