Skip to content

Commit

Permalink
chore: scheduled basic e2e tests for evm testnet endpoint (#2106)
Browse files Browse the repository at this point in the history
* chore: scheduled basic e2e tests for evm testnet endpoint

* chore: changelog update

* Update and rename e2e-evm-basic-testnet.yml to e2e-evm-cron.yml

---------

Co-authored-by: Unique Divine <[email protected]>
  • Loading branch information
onikonychev and Unique-Divine authored Nov 9, 2024
1 parent 6ec8200 commit b4283f1
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 1 deletion.
47 changes: 47 additions & 0 deletions .github/workflows/e2e-evm-cron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: EVM E2E Cron

on:
schedule:
- cron: '0 * * * *' # every hour at 00 min
# cron syntax: https://jasonet.co/posts/scheduled-actions/

jobs:
# The "evm-e2e-cron" job runs end-to-end tests on a schedule against instances
# of Nibiru to ensure core functionality remains stable. This is intended to
# highlight any outage or catch degredations in public endpoint functionality
# early. Failures trigger immediate Slack notifications to alert the team.
#
# This workflow:
# 1. Executes basic EVM integration tests against the testnet
# 2. Uses a dedicated test wallet (configured via secrets)
# 3. Reports failures to the testnet Slack channel
#
# Environment requirements:
# - WALLET_MNEMONIC_TESTNET: Secret for test wallet access
# - SLACK_WEBHOOK_TESTNET: Webhook URL for failure notifications
evm-e2e-cron:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: 'just install'
run: just install
working-directory: 'evm-e2e'

- name: 'Run tests (just test-basic)'
run: just test-basic
working-directory: 'evm-e2e'
env:
JSON_RPC_ENDPOINT: https://evm-rpc.testnet-1.nibiru.fi
MNEMONIC: ${{ secrets.WALLET_MNEMONIC_TESTNET }}

- name: Send failure to slack channel
if: always()
uses: ravsamhq/notify-slack-action@v2
with:
status: ${{ job.status }}
notify_when: 'failure'
notification_title: 'EVM basic tests failed on Testnet'
message_format: '{emoji} *{workflow}* {status_message} Run: {run_url}'
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_TESTNET }}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,12 @@ tests for race conditions within funtoken precompile
- [#2100](https://github.com/NibiruChain/nibiru/pull/2100) - refactor: cleanup statedb and precompile sections
- [#2101](https://github.com/NibiruChain/nibiru/pull/2101) - fix(evm): tx receipt proper marshalling
- [#2105](https://github.com/NibiruChain/nibiru/pull/2105) - test(evm): precompile call with revert
- [#2106](https://github.com/NibiruChain/nibiru/pull/2106) - chore: scheduled basic e2e tests for evm testnet endpoint
- [#2107](https://github.com/NibiruChain/nibiru/pull/2107) -
feat(evm-funtoken-precompile): Implement methods: balance, bankBalance, whoAmI
- [#2108](https://github.com/NibiruChain/nibiru/pull/2108) - fix(evm): removed deprecated root key from eth_getTransactionReceipt


#### Nibiru EVM | Before Audit 1 - 2024-10-18

- [#1837](https://github.com/NibiruChain/nibiru/pull/1837) - feat(eth): protos, eth types, and evm module types
Expand Down
4 changes: 4 additions & 0 deletions evm-e2e/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ install:
test:
npm test

# Runs tx receipt tests. Used for testnet quick check.
test-basic:
npm test -- tx_receipt.test.ts

# Format
fmt:
npm run format
2 changes: 1 addition & 1 deletion evm-e2e/test/tx_receipt.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('Transaction Receipt Tests', () => {
let recipient = ethers.Wallet.createRandom().address;

it('simple transfer receipt', async () => {
const value = ethers.parseEther('1');
const value = ethers.parseEther('0.0001');
const tx = await account.sendTransaction({
to: recipient,
value,
Expand Down

0 comments on commit b4283f1

Please sign in to comment.