nightly-scheduled-test #425
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: 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 |