Skip to content

Commit

Permalink
Merge branch 'master' into big-float-to-managed-buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
mihaicalinluca authored Mar 22, 2024
2 parents 0c819b6 + 0027e4a commit 5e8b82b
Show file tree
Hide file tree
Showing 384 changed files with 1,971 additions and 1,190 deletions.
134 changes: 29 additions & 105 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,18 @@ permissions:
pull-requests: write

jobs:
wasm_test:
name: Wasm tests
contracts:
name: Contracts
uses: multiversx/mx-sc-actions/.github/workflows/[email protected]
with:
rust-toolchain: nightly-2023-12-11
path-to-sc-meta: framework/meta
mx-scenario-go-version: v2.1.0-alpha
secrets:
token: ${{ secrets.GITHUB_TOKEN }}

test_coverage:
name: Test Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand All @@ -22,131 +32,45 @@ jobs:
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly-2023-12-11
target: wasm32-unknown-unknown

- name: Install prerequisites
run: |
pipx install multiversx-sdk-cli==v9.3.1
rustup component add llvm-tools-preview
dirname $(find ~/.rustup -name llvm-cov) >> $GITHUB_PATH
cargo install wasm-opt
cargo install twiggy
cargo install --path framework/meta
sc-meta install mx-scenario-go --tag v2.1.0-alpha
echo $(dirname $(find ~/.rustup -name llvm-cov))
which mxpy
which wasm-opt
which mx-scenario-go
- name: Build the wasm contracts
- name: Run tests and generate report
env:
RUSTFLAGS: ""
run: sc-meta all build --no-imports --target-dir $(pwd)/target --path .

- name: Run the wasm tests
env:
RUSTFLAGS: ""
run:
cargo test --features multiversx-sc-scenario/run-go-tests

- name: Generate the contract report
env:
RUSTFLAGS: ""
run: |
sc-meta all build-dbg --twiggy-paths --target-dir $(pwd)/target --path .
mxpy contract report --skip-build --skip-twiggy --output-format json --output-file report.json
- name: Upload the report json
uses: actions/upload-artifact@v3
with:
name: report
path: report.json

- name: Download the base report
uses: dawidd6/action-download-artifact@v2
if: github.event_name == 'pull_request'
continue-on-error: true
with:
workflow: actions.yml
name: report
commit: ${{ github.event.pull_request.base.sha }}
path: base-report

- name: Generate the report template
if: github.event_name == 'pull_request'
run: |
echo "Contract comparison - from {{ .base }} to {{ .head }}" > report.md
if [ ! -f base-report/report.json ]
then
echo ":warning: Warning: Could not download the report for the base branch. Displaying only the report for the current branch. :warning:" >> report.md
mxpy contract report --compare report.json --output-format github-markdown --output-file report-table.md
else
mxpy contract report --compare base-report/report.json report.json --output-format github-markdown --output-file report-table.md
fi
cat report-table.md >> report.md
- name: Render the report from the template
id: template
uses: chuhlomin/render-template@v1
if: github.event_name == 'pull_request'
with:
template: report.md
vars: |
base: ${{ github.event.pull_request.base.sha }}
head: ${{ github.event.pull_request.head.sha }}
- name: Upload the report markdown
cargo run --bin sc-meta test-coverage \
--ignore-filename-regex='meta/src' \
--ignore-filename-regex='wasm-adapter' \
--ignore-filename-regex='benchmarks/' \
--ignore-filename-regex='tests/' \
--output ./coverage.md
- name: Upload the report
uses: actions/upload-artifact@v3
if: github.event_name == 'pull_request'
with:
name: report-markdown
path: report.md
name: coverage
path: coverage.md

- name: Find the comment containing the report
id: fc
uses: peter-evans/find-comment@v2
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: 'Contract comparison'
comment-author: "github-actions[bot]"
body-includes: "Coverage Summary"

- name: Create or update the report comment
uses: peter-evans/create-or-update-comment@v2
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: ${{ steps.template.outputs.result }}
body-file: ./coverage.md
edit-mode: replace

rust_test:
name: Rust tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly-2023-12-11

- name: Run the rust tests
env:
RUSTFLAGS: ""
run:
cargo test

clippy_check:
name: Clippy linter check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly-2023-12-11
components: clippy
- uses: giraffate/clippy-action@v1
env:
RUSTFLAGS: ""
with:
github_token: ${{ github.token }}
clippy_flags: --all-targets --all-features
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,19 @@ sdk/**/Cargo.lock
tools/**/Cargo.lock
vm/**/Cargo.lock

# Coverage outputs
*.profraw
*.profdata
*.coverage
coverage.md

# These are backup files generated by rustfmt
**/*.rs.bk

# VSCode config
# Editors config
.vscode
.zed
.idea

# Others
my-vm-tests.sh
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,20 @@ They are:
- `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate.
- `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate.

## [sc 0.47.8] - 2024-03-22
- Test coverage functionality in sc-meta.
- Removed deprecation from legacy whitebox testing framework, since it is still used extensively.

## [sc 0.47.7] - 2024-03-15
- Template bugfix (concerning the interactor).

## [sc 0.47.6] - 2024-03-14
- Template naming bugfix, regarding numbers in the project name.
- Added the interactor to the adder template.

## [sc 0.47.5] - 2024-03-08
- Fixed an issue with `MapMapper` when reading from another contract.
- Got rid of nightly feature `maybe_uninit_uninit_array`/`maybe_uninit_array_assume_init`.

## [sc 0.47.4, vm 0.8.3] - 2024-02-08
- Post-build wasm report added to `.mxsc.json` file.
Expand Down
Loading

0 comments on commit 5e8b82b

Please sign in to comment.