ci-ethereum-contract.yml 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. on:
  2. pull_request:
  3. paths:
  4. - target_chains/ethereum/contracts/**
  5. - governance/xc_admin/packages/xc_admin_common/**
  6. - .github/workflows/ci-ethereum-contract.yml
  7. push:
  8. branches:
  9. - main
  10. name: Ethereum Contract
  11. jobs:
  12. check:
  13. name: Foundry tests
  14. runs-on: ubuntu-latest
  15. defaults:
  16. run:
  17. working-directory: target_chains/ethereum/contracts/
  18. steps:
  19. - uses: actions/checkout@v3
  20. - uses: actions/setup-node@v4
  21. with:
  22. node-version-file: "package.json"
  23. # Libusb is a build requirement for the node-hid package and so pnpm
  24. # install will fail if this isn't in the build environment and if a
  25. # precompiled binary isn't found.
  26. - name: Install libusb
  27. run: sudo apt-get update && sudo apt-get install -y libusb-1.0-0-dev libudev-dev
  28. - uses: pnpm/action-setup@v4
  29. name: Install pnpm
  30. with:
  31. run_install: true
  32. - name: Install Foundry
  33. uses: foundry-rs/foundry-toolchain@v1
  34. with:
  35. version: v0.3.0
  36. - name: Install Forge dependencies
  37. run: pnpm run install-forge-deps
  38. - name: Run tests
  39. run: forge test -vvv --deny-warnings
  40. - name: Run snapshot
  41. run: NO_COLOR=1 forge snapshot --match-contract GasBenchmark >> $GITHUB_STEP_SUMMARY