Skip to content

Commit

Permalink
optimize ci
Browse files Browse the repository at this point in the history
  • Loading branch information
sergejparity committed Oct 13, 2023
1 parent 61f69a7 commit 739b945
Showing 1 changed file with 56 additions and 54 deletions.
110 changes: 56 additions & 54 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,64 @@ on:
tags:
- v*
paths-ignore:
- 'README.md'
- '.gitlab-ci.yml'
- '**.gitignore'
- '.images/**'
- '**README.md'

pull_request:
branches:
- main
paths-ignore:
- '**.gitignore'
- '.images/**'
- '**README.md'


jobs:
check:
name: examples
strategy:
matrix:
platform:
- ubuntu_20_64_core
- ubuntu-latest
- macos-latest
toolchain:
- stable
job:
- contract build
- test
contract:
- basic-contract-caller
- call-runtime
- conditional-compilation
- contract-terminate
- custom-allocator
- custom-environment
- dns
- e2e-call-runtime
- erc20
- erc721
- erc1155
- flipper
- incrementer
- multi-contract-caller
- multi-contract-caller/accumulator
- multi-contract-caller/adder
- multi-contract-caller/subber
- multisig
- payment-channel
- psp22-extension
- rand-extension
- trait-dyn-cross-contract-calls
- trait-erc20
- trait-flipper
- trait-incrementer
- upgradeable-contracts/delegator
- upgradeable-contracts/set-code-hash
- vesting
runs-on: ${{ matrix.platform }}
env:
MULTI_CONTRACT_CALLER_SUBCONTRACTS: "accumulator adder subber"
UPGRADEABLE_CONTRACTS: "delegator set-code-hash"
RUST_BACKTRACE: full
steps:

- name: Checkout sources & submodules
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: recursive
Expand All @@ -49,22 +79,27 @@ jobs:
override: true

- name: Rust Cache
uses: Swatinem/[email protected]
uses: Swatinem/[email protected]
with:
cache-on-failure: true
workspaces: ${{ matrix.contract }}
key: ${{ matrix.contract }}

- name: Install `cargo-contract` `main`
uses: actions-rs/cargo@v1
uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 # v2.2.0
with:
command: install
args: --git https://github.com/paritytech/cargo-contract.git
crate: cargo-contract
git: https://github.com/paritytech/cargo-contract.git
cache-key: ${{ matrix.platform }}

- name: Install cargo-dylint
uses: baptiste0928/cargo-install@bf6758885262d0e6f61089a9d8c8790d3ac3368f # v1.3.0
uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 # v2.2.0
with:
crate: cargo-dylint
version: 1

- name: Install dylint-link
uses: baptiste0928/cargo-install@bf6758885262d0e6f61089a9d8c8790d3ac3368f # v1.3.0
uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 # v2.2.0
with:
crate: dylint-link
version: 1
Expand Down Expand Up @@ -96,43 +131,10 @@ jobs:
cargo -vV
cargo contract --version
- name: ${{ matrix.job }} examples on ${{ matrix.platform }}-${{ matrix.toolchain }}
if: runner.os == 'Windows'
run: |
$multi_contract_caller_subcontracts = "accumulator","adder","subber"
foreach ($contract in $multi_contract_caller_subcontracts) {
echo "Processing multi-contract-caller contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path multi-contract-caller/${contract}/Cargo.toml;
}
$upgradeable_contracts = "delegator","set-code-hash"
foreach ($contract in $upgradeable_contracts) {
echo "Processing upgradeable contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path upgradeable-contracts/${contract}/Cargo.toml;
}
foreach ($example in Get-ChildItem -Directory "\*") {
if ($example -Match 'artifacts') { continue }
echo "Processing example: $example";
cargo ${{ matrix.job }} --verbose --manifest-path=$example/Cargo.toml;
cargo clean --manifest-path=$example/Cargo.toml;
}
- name: ${{ matrix.job }} examples on ${{ matrix.platform }}-${{ matrix.toolchain }}
- name: Build ${{ matrix.contract }} on ${{ matrix.platform }}-${{ matrix.toolchain }}
if: runner.os != 'Windows'
run: |
for contract in ${MULTI_CONTRACT_CALLER_SUBCONTRACTS}; do
echo "Processing multi-contract-caller contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path multi-contract-caller/${contract}/Cargo.toml;
done
for contract in ${UPGRADEABLE_CONTRACTS}; do
echo "Processing upgradeable contract: $contract";
cargo ${{ matrix.job }} --verbose --manifest-path=upgradeable-contracts/$contract/Cargo.toml;
done
run: cargo contract build --verbose --manifest-path=${{ matrix.contract }}/Cargo.toml;

for example in ./*/; do
if [ "$example" = "./artifacts/" ] || [ "$example" = "./upgradeable-contracts/" ]; then continue; fi;
echo "Processing example: $example";
cargo ${{ matrix.job }} --verbose --manifest-path=$example/Cargo.toml;
done
- name: Test ${{ matrix.contract }} on ${{ matrix.platform }}-${{ matrix.toolchain }}
if: runner.os != 'Windows'
run: cargo test --verbose --manifest-path=${{ matrix.contract }}/Cargo.toml;

0 comments on commit 739b945

Please sign in to comment.