chore: Add CONTRIBUTING.md #1392
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Sylvia Testing | |
on: | |
push: | |
branches: | |
- main | |
- feat/* | |
pull_request: | |
env: | |
RUST_BACKTRACE: 1 | |
jobs: | |
conv_commits: | |
name: Commits consistency | |
runs-on: ubuntu-latest | |
steps: | |
- name: Commits validation | |
uses: taskmedia/action-conventional-commits@v1.1.3 | |
with: | |
types: "feat|fix|revert|docs|test|refactor|chore|build" | |
test_project: | |
name: ${{ matrix.build }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- build: macOS | |
os: macOS-latest | |
- build: Windows | |
os: windows-latest | |
defaults: | |
run: | |
shell: bash | |
working-directory: ./ | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.75.0 | |
target: wasm32-unknown-unknown | |
profile: minimal | |
override: true | |
components: rustfmt, clippy | |
- name: Install npm | |
uses: actions/setup-node@v3 | |
- name: Intall ts-codegen | |
run: npm install -g @cosmwasm/ts-codegen | |
- name: Test project | |
run: cargo test --locked | |
- name: Clippy project | |
run: cargo clippy --all-targets -- -D warnings | |
- name: Fmt check project | |
run: cargo fmt --check | |
- name: Test examples | |
working-directory: examples | |
run: cargo test --locked | |
- name: Clippy examples | |
working-directory: examples | |
run: cargo clippy --all-targets -- -D warnings | |
- name: Fmt check examples | |
working-directory: examples | |
run: cargo fmt --check | |
- name: Build contracts | |
working-directory: examples/contracts/ | |
run: ../../ci_contracts.sh "cargo wasm" | |
- name: Install cosmwasm-check | |
run: cargo install cosmwasm-check --force --locked | |
- name: Check contracts | |
run: find examples/target/wasm32-unknown-unknown/release/ -type f -name "*.wasm" -exec cosmwasm-check {} \; | |
- name: Create contracts schema | |
working-directory: examples/contracts/ | |
run: ../../ci_contracts.sh "cargo schema" | |
- name: Run ts-codegen for contracts | |
working-directory: examples/contracts/ | |
run: ../../ci_contracts.sh "cosmwasm-ts-codegen generate --plugin client --schema ./schema --out ./ts --name ${command} --no-bundle" | |
- name: Archive schema artifats | |
uses: actions/upload-artifact@v3 | |
with: | |
name: schema-json | |
path: | | |
examples/contracts/**/schema/*.json | |
# Errors differ between Rust versions. We test only the latest output. | |
test_ui: | |
name: Test UI | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- build: macOS | |
os: macOS-latest | |
- build: Windows | |
os: windows-latest | |
defaults: | |
run: | |
shell: bash | |
working-directory: ./ | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: wasm32-unknown-unknown | |
profile: minimal | |
override: true | |
- name: Test project | |
run: cargo test --locked -- --ignored | |
coverage: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
container: | |
image: xd009642/tarpaulin:0.31.1 | |
options: --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Generate code coverage | |
run: | | |
cargo tarpaulin --verbose --all-features --workspace --timeout 120 --out xml --engine llvm | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v2 | |
with: | |
fail_ci_if_error: true | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |