Skip to content

nightly-scheduled-test #434

nightly-scheduled-test

nightly-scheduled-test #434

---
name: nightly-scheduled-test
on:
workflow_dispatch:
schedule:
# * is a special character in YAML so you have to quote this string
# runs every day at midnight
- cron: '0 0 * * *'
jobs:
nightly-npm-test:
strategy:
fail-fast: false
matrix:
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [16.x, 18.x]
os: [ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.os }}
env:
FAUCET_PRIV_KEY: 'MC4CAQAwBQYDK2VwBCIEII8ULlk1CJ12ZQ+bScjBt/IxMAZNggClWqK56D1/7CbI'
NODE_URL: 'http://127.0.0.1:7777/rpc'
HTTP_EVENT_STREAM_URL: 'http://127.0.0.1:9999/events/main'
HTTPS_EVENT_STREAM_URL: 'https://events.mainnet.casperlabs.io/events/main'
NETWORK_NAME: 'casper-net-1'
RUST_LOG: 'INFO'
VERSION_QUERY: '{"jsonrpc": "2.0", "id": "1", "method": "info_get_status"}'
MAINNET_NODE_URL: 'https://rpc.mainnet.casperlabs.io/rpc'
TESTNET_NODE_URL: 'https://rpc.testnet.casperlabs.io/rpc'
steps:
- name: Checkout
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b #v3.0.2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@5b949b50c3461bbcd5a540b150c368278160234a #v3.4.0
with:
node-version: ${{ matrix.node-version }}
- name: Install
run: npm install
- name: Unit Test
run: npm run test:unit
# test mainnet
- name: Get the mainnet version
id: get-mainnet-version
run: echo "MAINNET_VERSION=$(curl -s -X POST --data-raw '${{ env.VERSION_QUERY }}' -H "Content-Type:application/json" ${{ env.MAINNET_NODE_URL }} | jq -r .result.build_version | cut -d "-" -f 1)" >> "$GITHUB_ENV"
- name: Test RPC - mainnet ${{ env.MAINNET_VERSION }}
run: npx casper-node-launcher-js node v${{ env.MAINNET_VERSION }} --daemon && npm run test:e2e && npx casper-node-launcher-js stop
# test testnet
- name: Get the testnet version
id: get-testnet-version
run: echo "TESTNET_VERSION=$(curl -s -X POST --data-raw '${{ env.VERSION_QUERY }}' -H "Content-Type:application/json" ${{ env.TESTNET_NODE_URL }} | jq -r .result.build_version | cut -d "-" -f 1)" >> "$GITHUB_ENV"
- name: Test RPC - testnet ${{ env.TESTNET_VERSION }}
run: npx casper-node-launcher-js node v${{ env.TESTNET_VERSION }} --daemon && npm run test:e2e && npx casper-node-launcher-js stop
- name: Test RPC - CN Dev
run: npx casper-node-launcher-js node dev --daemon && npm run test:e2e && npx casper-node-launcher-js stop
- name: Get Latest Casper-Node Tag Version
run: |
echo "CASPER_TAG_VERSION=$(curl -s ${{ env.GH_API_URL }} | jq -r '.[].name' | grep 'v*' | sort -V | sed 's/_$//' | tail -n1)" >> $GITHUB_ENV
env:
GH_API_URL: 'https://api.github.com/repos/casper-network/casper-node/tags'
- name: Test RPC - CN Release - ${{ env.CASPER_TAG_VERSION }}
run: npx casper-node-launcher-js node ${{env.CASPER_TAG_VERSION }} --daemon && npm run test:e2e && npx casper-node-launcher-js stop
- name: Get Latest Casper-Node RC Version
run: |
echo "CASPER_RC_VERSION=$(curl -s -G -d 'per_page=100' https://api.github.com/repos/casper-network/casper-node/branches | jq -r '.[].name' | grep '^release' | awk -F'-' '{print $2}'| sort -V | sed 's/_$//' | tail -n1)" >> $GITHUB_ENV
env:
GH_API_URL: 'https://api.github.com/repos/casper-network/casper-node/branches'
- name: Test RPC - CN RC - ${{ env.CASPER_RC_VERSION }}
run: npx casper-node-launcher-js node ${{env.CASPER_TAG_VERSION }} --daemon && npm run test:e2e && npx casper-node-launcher-js stop
- name: Slack Notification
uses: ravsamhq/notify-slack-action@4ed28566c2bdcdaee6dca2b46b9666d01b4ed8a4 #v1.10.0
if: always()
with:
status: ${{ job.status }}
notification_title: '*{repo}*'
message_format: '{emoji} *{workflow}* *{job}* *{status_message}* in <{repo_url}|{repo}@{branch}> on <{commit_url}|{commit_sha}>'
footer: '<{run_url}|View Run>'
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Fake Commit after 50 days
uses: gautamkrishnar/keepalive-workflow@790c7f09285a59b09bb578c85e271c6ff2af97c4 #v1.1.0