Skip to content

Commit

Permalink
Test CI
Browse files Browse the repository at this point in the history
Signed-off-by: Shreevatsa N <[email protected]>
  • Loading branch information
vatsa287 committed Sep 27, 2024
1 parent e892577 commit a92f809
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 69 deletions.
74 changes: 74 additions & 0 deletions .github/scripts/generate_lists.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/bin/bash

# Define the input text with packages
input_text=$(cat << EOF
authority-membership = { path = "runtimes/common/authorities", default-features = false }
identifier = { package = "cord-identifier", path = "primitives/identifier", default-features = false }
cord-node-cli = { path = "node/cli", default-features = false }
cord-primitives = { path = "primitives/cord", default-features = false }
network-membership = { path = "primitives/network-membership", default-features = false }
cord-braid-runtime = { path = "runtimes/braid", default-features = false }
cord-braid-runtime-constants = { path = "runtimes/braid/constants", default-features = false }
cord-runtime-common = { path = "runtimes/common", default-features = false }
cord-loom-runtime = { path = "runtimes/loom", default-features = false }
cord-loom-runtime-constants = { path = "runtimes/loom/constants", default-features = false }
cord-weave-runtime = { path = "runtimes/weave", default-features = false }
cord-weave-runtime-constants = { path = "runtimes/weave/constants", default-features = false }
cord-node-service = { path = "node/service", default-features = false }
cord-node-inspect = { path = "node/inspect", default-features = false }
cord-node-rpc = { path = "node/rpc", default-features = false }
cord-node-testing = { path = "node/testing", default-features = false }
cord-test-utils = { path = "test-utils", default-features = false }
cord-service-test = { path = "test-utils/service", default-features = false }
cord-test-runtime = { path = "test-utils/runtime", default-features = false }
cord-test-client = { path = "test-utils/client", default-features = false }
cord-test-runtime-client = { path = "test-utils/runtime/client", default-features = false }
cord-test-runtime-transaction-pool = { path = "test-utils/runtime/transaction-pool", default-features = false }
cord-cli-test-utils = { path = "test-utils/cli", default-features = false }
cord-utilities = { path = "utilities", default-features = false }
pallet-membership = { path = 'pallets/membership/', default-features = false }
pallet-config = { path = 'pallets/config/', default-features = false }
pallet-did = { path = 'pallets/did', default-features = false }
pallet-did-name = { path = 'pallets/did-name', default-features = false }
pallet-schema = { path = 'pallets/schema', default-features = false }
pallet-chain-space = { path = 'pallets/chain-space', default-features = false }
pallet-statement = { path = 'pallets/statement', default-features = false }
pallet-network-membership = { path = 'pallets/network-membership', default-features = false }
pallet-runtime-upgrade = { path = 'pallets/runtime-upgrade', default-features = false }
pallet-identity = { path = 'pallets/identity', default-features = false }
pallet-offences = { path = 'pallets/offences', default-features = false }
pallet-node-authorization = { path = "pallets/node-authorization", default-features = false }
pallet-network-score = { path = 'pallets/network-score', default-features = false }
pallet-session-benchmarking = { path = 'pallets/session-benchmarking', default-features = false }
pallet-assets-runtime-api = { path = "runtimes/common/api/assets", default-features = false }
pallet-did-runtime-api = { path = "runtimes/common/api/did", default-features = false }
pallet-transaction-weight-runtime-api = { path = "runtimes/common/api/weight", default-features = false }
pallet-registries = { path = "pallets/registries", default-features = false }
pallet-entries = { path = "pallets/entries", default-features = false }
EOF
)

# Define output files
packages_with_feature="packages_with_runtime_benchmarks.txt"
packages_without_feature="packages_without_runtime_benchmarks.txt"

# Clear existing files
> $packages_with_feature
> $packages_without_feature

# Process the input text
echo "$input_text" | while read -r line; do
# Extract the package name
package_name=$(echo "$line" | cut -d '=' -f 1 | tr -d ' ')

# Check if it contains 'runtime-benchmarks' (adjust according to your context)
if echo "$line" | grep -q "runtime-benchmarks"; then
echo "$package_name" >> $packages_with_feature
else
echo "$package_name" >> $packages_without_feature
fi
done

# Output the results
echo "Packages with 'runtime-benchmarks' feature are stored in $packages_with_feature"
echo "Packages without 'runtime-benchmarks' feature are stored in $packages_without_feature"
29 changes: 29 additions & 0 deletions .github/scripts/generate_package_lists.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# Files to store the package names
packages_with_feature="packages_with_runtime_benchmarks.txt"
packages_without_feature="packages_without_runtime_benchmarks.txt"

# Empty the files if they already exist
> $packages_with_feature
> $packages_without_feature

# Find Cargo.toml files and check for the feature
for cargo_file in $(find . -name "Cargo.toml"); do
if grep -q "\[features\]" "$cargo_file"; then
if grep -q "runtime-benchmarks" "$cargo_file"; then
package_name=$(basename $(dirname "$cargo_file"))
echo "$package_name" >> $packages_with_feature
else
package_name=$(basename $(dirname "$cargo_file"))
echo "$package_name" >> $packages_without_feature
fi
else
package_name=$(basename $(dirname "$cargo_file"))
echo "$package_name" >> $packages_without_feature
fi
done

# Output the result
echo "Packages with 'runtime-benchmarks' feature are stored in $packages_with_feature"
echo "Packages without 'runtime-benchmarks' feature are stored in $packages_without_feature"
117 changes: 48 additions & 69 deletions .github/workflows/ci-on-pr-rustfmt-test-clippy-build.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
name: ci
name: CI

on:
pull_request:
paths-ignore:
- "**.md"
- "doc/**"

# Allows to run this workflow manually from the Actions tab
workflow_dispatch:

defaults:
Expand All @@ -17,97 +16,77 @@ env:
CARGO_TERM_COLOR: always

jobs:
rustfmt:
setup:
runs-on: ubuntu-latest
steps:
- name: checkout repository
- name: Checkout repository
uses: actions/[email protected]

- name: install dependencies
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libssl-dev

- name: install rust nightly
run: rustup toolchain install nightly

- name: show active toolchain
run: rustup show active-toolchain

- name: add nightly rustfmt
run: rustup component add rustfmt --toolchain nightly-x86_64-unknown-linux-gnu

- name: cache rust toolchain and dependencies
- name: Cache Cargo registry and target
uses: actions/cache@v4
with:
path: |
~/.cargo/
~/.cargo/registry
~/.cargo/git
target/
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-rust-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-

- name: rustfmt
run: cargo +nightly fmt --all -- --check
- name: Install Rust nightly
run: rustup toolchain install nightly

test:
- name: Show active toolchain
run: rustup show active-toolchain

- name: Add nightly rustfmt and clippy
run: |
rustup component add rustfmt
rustup component add clippy
rustfmt:
runs-on: ubuntu-latest
needs: rustfmt
needs: setup
steps:
- name: checkout repository
- name: Checkout repository
uses: actions/[email protected]

- name: install dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libssl-dev

- name: cache
uses: actions/cache@v4
with:
path: |
~/.cargo/
target/
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-rust-

- name: cargo test
run: rustup component add rust-src && cargo test --release --all --all-targets --features=runtime-benchmarks --no-fail-fast --verbose --color always

- name: Run rustfmt
run: |
cargo +nightly fmt --all -- --check
clippy:
runs-on: ubuntu-latest
needs: rustfmt
steps:
- name: checkout repository
- name: Checkout repository
uses: actions/[email protected]

- name: Run cargo clippy
run: |
echo "Running clippy for the entire workspace"
cargo clippy --all --no-deps --features "runtime-benchmarks" -- -D warnings
- name: install dependencies
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libssl-dev
test:
runs-on: ubuntu-latest
needs: rustfmt
steps:
- name: Checkout repository
uses: actions/[email protected]

- name: cache
- name: Cache Cargo registry and target
uses: actions/cache@v4
with:
path: |
~/.cargo/
~/.cargo/registry
~/.cargo/git
target/
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-rust-

- name: cargo clippy
run: rustup component add rust-src && cargo clippy --all --no-deps --all-targets --features=runtime-benchmarks -- -D warnings

# build:
# runs-on: ubuntu-latest
# needs: rustfmt
# steps:
# - name: checkout repository
# uses: actions/[email protected]
# - name: install dependencies
# run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libssl-dev

# - name: cache
# uses: actions/cache@v4
# with:
# path: |
# ~/.cargo/
# target/
# key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
# restore-keys: ${{ runner.os }}-rust-
# - name: cargo build
# run: rustup component add rust-src && cargo build --locked
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-

- name: Run tests with runtime-benchmarks
run: |
echo "Running tests for all packages"
cargo test --release --all --features "runtime-benchmarks" --no-fail-fast

0 comments on commit a92f809

Please sign in to comment.