-
Notifications
You must be signed in to change notification settings - Fork 3
129 lines (113 loc) · 4.37 KB
/
ci.yaml
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: CI
on:
pull_request:
types: [ opened, synchronize, reopened, ready_for_review ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
if: ${{ !github.event.pull_request.draft }} # only run on non-draft PRs
services:
postgres:
image: kwildb/postgres:latest
env:
POSTGRES_PORT: 5432
POSTGRES_HOST_AUTH_METHOD: trust
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('./package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22.x'
check-latest: true
- name: Install Taskfile
uses: arduino/setup-task@v2
- name: Set up KwilDB Docker in Public mode
run: |
git clone https://github.com/kwilteam/kwil-db.git /tmp/kwil-db-public -b v0.10.0-beta-1
cd /tmp/kwil-db-public
task work
task build:docker
cd contrib/docker/compose/kwil
echo "services:
kwild:
command: |
--autogen
--root=/app/.kwild
--log-format=plain
--log-level=debug
--admin.listen=/tmp/kwild.socket
--rpc.listen=0.0.0.0:8484
--p2p.listen=0.0.0.0:6600
--consensus.propose-timeout=200ms
--consensus.empty-block-timeout=6s
--db.host=172.5.100.3
--db.port=5432
--db.user=kwild
--db.pass=kwild
--db-owner 0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
" > ./docker-compose.override.yml
echo "Starting kwil docker"
docker compose up -d
cd -
- name: Install and build kwiljs
run: |
npm install
npm run build
- name: Run integration tests
run: |
chain_id=`curl -X POST http://localhost:8484/rpc/v1 -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "id": 1, "method": "user.chain_info", "params": {}}' | jq -r '.result.chain_id'`
echo "Chain ID: $chain_id"
echo "run KWIL-JS TEST against kwild(http:localhost:8484), with $chain_id"
PRIVATE_KEY=0000000000000000000000000000000000000000000000000000000000000001 CHAIN_ID=$chain_id GATEWAY_ON=false GAS_ON=false KWIL_PROVIDER=http://localhost:8484 npm run integration
- name: Cleanup Docker
if: always()
run: |
docker compose -f /tmp/kwil-db-public/deployments/compose/kwil/docker-compose.yml down
docker system prune -af
# - name: Set up KwilDB Docker in Private mode
# run: |
# git clone https://github.com/kwilteam/kwil-db.git /tmp/kwil-db-private -b v0.10.0-beta-1
# cd /tmp/kwil-db-private
# go work init && go work use . ./test ./core
# task build:docker
# cd -
# cd .github/workflows
# docker compose up -d
# cd -
# - name: Install and build kwiljs
# run: |
# npm install
# npm run build
# - name: Run integration tests in private mode
# run: |
# chain_id=`curl -X POST http://localhost:8484/rpc/v1 -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "id": 1, "method": "user.chain_info", "params": {}}' | jq -r '.result.chain_id'`
# echo "Chain ID: $chain_id"
# echo "run KWIL-JS TEST in private mode against kwild(http:localhost:8484), with $chain_id"
# PRIVATE_KEY=0000000000000000000000000000000000000000000000000000000000000001 CHAIN_ID=$chain_id GATEWAY_ON=FALSE GAS_ON=FALSE PRIVATE_MODE=TRUE KWIL_PROVIDER=http://localhost:8484 npm run integration
# - name: Cleanup Docker
# if: always()
# run: |
# docker compose -f .github/workflows/docker-compose.yml down
# docker system prune -af