-
Notifications
You must be signed in to change notification settings - Fork 7
129 lines (111 loc) · 5.06 KB
/
ci-local.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Run Tests Against Local Kava Network
# There are 2 triggers for this workflow:
# - workflow was triggered by repository_dispatch event which was sent by kava repo, in that case tests will be run against
# specified version of kava (github.event.client_payload.ref) and default branch of rosetta
# - workflow was triggered by commit in rosetta-kava repo, in that case tests will be run against
# default branch of kava and specified version of rosetta (github.ref)
on:
# repository_dispatch event will be sent by kava on every kava commit to master
repository_dispatch:
types: [ run-rosetta-tests ]
# run CI on any push to the master branch
push:
branches: [ master ]
# run CI on pull requests to master
pull_request:
branches:
- master
jobs:
setup-and-run-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout rosetta-kava
uses: actions/checkout@v4
with:
path: rosetta-kava
# TODO(yevhenii): consider reusing already built kava docker image instead of rebuilding it
- name: Checkout kava
uses: actions/checkout@v4
with:
repository: Kava-Labs/kava
# There are 2 cases here:
# - workflow was triggered by repository_dispatch event which was sent by kava repo, in that case we're using
# kava version provided in event: github.event.client_payload.ref
# - workflow was triggered by commit in rosetta-kava repo, in that case github.event.client_payload.ref will be empty
# and default branch will be used instead
ref: ${{ github.event.client_payload.ref }}
path: kava
submodules: 'true'
- name: Print rosetta version
run: |
git branch
git rev-parse HEAD
working-directory: ./rosetta-kava
- name: Print kava version
run: |
git branch
git rev-parse HEAD
working-directory: ./kava
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: rosetta-kava/go.mod
- name: Cache Go Modules
uses: actions/cache@v4
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('./rosetta-kava/**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Build kava docker image
run: make docker-build
working-directory: ./kava
- name: Install kvtool
run: make install
working-directory: ./kava/tests/e2e/kvtool
- name: Run kava docker container
run: KAVA_TAG=local kvtool t bootstrap
- name: Wait until kava node is ready to serve traffic
run: bash ${GITHUB_WORKSPACE}/rosetta-kava/.github/scripts/wait-for-node-init.sh
- name: Run integration tests
run: KAVA_RPC_URL=http://localhost:26657 NETWORK=kava-local PORT=4000 SKIP_LIVE_NODE_TESTS=true make test-integration
working-directory: ./rosetta-kava
# Run kava e2e tests to simulate load before running "rosetta-cli check:data"
# Tests are run against already running kava node, details: https://github.com/Kava-Labs/kava/blob/master/tests/e2e/.env.live-network-example
- name: Run kava e2e tests
run: make test-e2e
working-directory: ./kava
env:
# E2E_RUN_KVTOOL_NETWORKS must be false to trigger run on live network
E2E_RUN_KVTOOL_NETWORKS: false
# Configure the endpoints for connecting to the running network here.
E2E_KAVA_RPC_URL: "http://localhost:26657"
E2E_KAVA_GRPC_URL: "http://localhost:9090"
E2E_KAVA_EVM_RPC_URL: "http://localhost:8545"
# E2E_INCLUDE_IBC_TESTS is not currently supported for running tests against a live network.
E2E_INCLUDE_IBC_TESTS: false
- name: Download coinbase rosetta-cli
run: "curl -sSfL https://raw.githubusercontent.com/coinbase/rosetta-cli/master/scripts/install.sh | sh -s"
working-directory: ./rosetta-kava
- name: Start rosetta server
run: .github/scripts/kava-localnet-ci/setup.sh
shell: bash
working-directory: ./rosetta-kava
- name: Run check:construction test
run: .github/scripts/kava-localnet-ci/construction.sh
shell: bash
working-directory: ./rosetta-kava
- name: Run check:data test
run: .github/scripts/kava-localnet-ci/cli.sh
shell: bash
working-directory: ./rosetta-kava
- name: Send slack notification if job failed
uses: slackapi/[email protected]
# send slack notification only if workflow was triggered by repository_dispatch event
# if it was triggered by commit to rosetta-kava repo - there is no point to alert, it's visible in rosetta-kava CI
if: ${{ failure() && github.event_name == 'repository_dispatch' }}
with:
channel-id: ${{ vars.SLACK_CHANNEL_ID }}
slack-message: "Rosetta-kava CI failed, details: https://github.com/Kava-Labs/rosetta-kava/actions/runs/${{github.run_id}}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_ALERTS_BOT_TOKEN }}