Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize Solang Aqd #2

Merged
merged 3 commits into from
Nov 11, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 128 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: Aqd CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
name: Sanity Check Codebase
runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v2

- name: Set up Rust
tareknaser marked this conversation as resolved.
Show resolved Hide resolved
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy

# Print Cargo version
- name: Print Cargo version
run: cargo --version

# Install libudev (required for solana crates)
- name: Install libudev
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev

- name: Check formatting
run: |
cargo fmt -- --check
tareknaser marked this conversation as resolved.
Show resolved Hide resolved

- name: Check linting
run: |
cargo clippy --workspace --all-features

- name: Build and test
run: |
cargo test --workspace --all-features

solana:
name: Solana Integration Testing
runs-on: ubuntu-latest

steps:
# Install jq to parse JSON (used in shell scripts)
- name: Install jq
run: |
sudo apt-get update
sudo apt-get install -y jq libudev-dev

- name: Check out code
uses: actions/checkout@v3

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy

# Print Cargo version
- name: Print Cargo version
run: cargo --version

# Set up Solana CLI
- name: Set up Solana CLI
working-directory: ./integration/solana
run: ./setup_solana.sh

# Compile Aqd in release mode (solana feature)
- name: Compile Aqd for Solana target
run: |
cargo build --no-default-features --features "solana" --release

# Run Solana integration tests
- name: Test Solana CLI
run: ./solana_cli.sh
working-directory: ./integration/solana

polkadot:
name: Polkadot Integration Testing
runs-on: ubuntu-latest

steps:
# Install jq to parse JSON (used in shell scripts)
- name: Install jq
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is done for both Polkadot and Solana, could this be done in build instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the test workflow to be 3 separate jobs:

  • First one checks for formatting, linting and builds for all features
  • Second one to test solana node interactions
    • build the project using cargo build --no-default-features --features "solana" --release
  • Third one to test polkadot node interactions

I tried it in my github repository. Here is how the CI should look like when it's merged

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

run: |
sudo apt-get update
sudo apt-get install -y jq libudev-dev

- name: Check out code
uses: actions/checkout@v3

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

# Print Cargo version
- name: Print Cargo version
run: cargo --version

- name: Start substrate-contracts-node
run: |
# Download and extract the substrate-contracts-node binary
wget https://github.com/paritytech/substrate-contracts-node/releases/download/v0.33.0/substrate-contracts-node-linux.tar.gz
tar -xzvf substrate-contracts-node-linux.tar.gz

# Run substrate-contracts-node
nohup ./artifacts/substrate-contracts-node-linux/substrate-contracts-node --dev --rpc-external > substrate.out &

# Compile Aqd in release mode (polkadot feature)
- name: Compile Aqd for Polkadot target
run: |
cargo build --no-default-features --features "polkadot" --release

# Run Polkadot integration tests
- name: Test Polkadot CLI
run: ./polkadot_cli.sh
working-directory: ./integration/polkadot
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/target
.vscode

**/.DS_Store
Loading