-
Notifications
You must be signed in to change notification settings - Fork 1
175 lines (144 loc) · 5.56 KB
/
ci-rust-sdk.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
---
name: ci-rust-sdk
on:
push:
branches: [dev, cid_cd_tests, 'feat*', 'release-*']
paths-ignore:
- '**.md'
pull_request:
branches: [dev, cid_cd_tests, 'feat*', 'release-*']
paths-ignore:
- '**.md'
jobs:
build_and_test:
strategy:
matrix:
#https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
os: [ubuntu-22.04]
node-version: [20.x]
runs-on: ${{ matrix.os }}
env:
RPC_ADDRESS: http://127.0.0.1:11101
EVENT_ADDRESS: http://127.0.0.1:18101/events
SPECULTATIVE_ADDRESS: http://127.0.0.1:25101
# services:
# # Label used to access the service container
# casper-nctl:
# # Docker Hub image
# image: gregoshop/casper-nctl:2.0
# ports:
# - 11101-11105:11101-11105
# - 14101-14105:14101-14105
# - 18101-18105:18101-18105
# - 25101-25105:25101-25105
# - 28101-28105:28101-28105
# volumes:
# - ./assets/users:/app/casper-nctl/assets/net-1/users/
steps:
# Replace by above service with docker image of stable 2.0
- name: Clone casper-nctl-2-docker repository
run: |
git clone https://github.com/gRoussac/casper-nctl-2-docker.git
- name: Build and start the service
run: |
cd casper-nctl-2-docker
make build-start 2.0
cd ..
- name: Wait for the service to be ready
run: |
echo "Waiting for the service to be ready on port 11101..."
for i in {1..30}; do # wait for up to 30 seconds
if nc -z localhost 11101; then
echo "Service is up!"
echo "Wait 45s for nctl to boot and create keys"
sleep 45 # - name: wait for up to 45 seconds for an era like
break
fi
echo "Waiting..."
sleep 1
done
# Check if the service is still not ready after 30 seconds
if ! nc -z localhost 11101; then
echo "Service did not start in time!"
exit 1
fi
# - name: List files in the users directory
# run: |
# echo "Listing files in the users directory of the service container..."
# docker exec ${{ job.services.casper-nctl.id }} ls /app/casper-nctl/assets/net-1/users/
# - name: List files in user-1 directory
# run: |
# echo "Listing files in ./assets/users/user-1/:"
# ls -la ./casper-nctl-2-docker/assets/users/user-1/
# WARNING: These accounts, and their private keys, are now publicly known.
# Any funds sent to them on Mainnet or any other live network WILL BE LOST.
- name: Set SECRET_KEY_USER_1 and SECRET_KEY_USER_2 environment variables
run: |
echo "SECRET_KEY_USER_1=$(sed -n '2p' ./casper-nctl-2-docker/assets/users/user-1/secret_key.pem)" >> $GITHUB_ENV
echo "SECRET_KEY_USER_2=$(sed -n '2p' ./casper-nctl-2-docker/assets/users/user-2/secret_key.pem)" >> $GITHUB_ENV
- name: Delete user-1 directory
run: |
echo "Deleting ./casper-nctl-2-docker directories..."
sudo rm -rf ./casper-nctl-2-docker
- name: Print GITHUB_ENV
run: |
echo "Contents of GITHUB_ENV:"
cat $GITHUB_ENV
- uses: actions/checkout@v2
- name: Swatinem cache
uses: Swatinem/rust-cache@cb2cf0cc7c5198d3364b9630e2c3d457f160790c #v1.4.0
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt, clippy
target: wasm32-unknown-unknown
- name: Fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
- name: Audit
uses: actions-rs/cargo@v1
with:
command: audit
args: --deny warnings
- name: Lint
run: make check-lint
- name: Unit Tests
run: make test
- name: Integration Tests
run: make integration-test
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@5b949b50c3461bbcd5a540b150c368278160234a #v3.4.0
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'
- name: E2E Tests
run: make e2e-test
- name: Build lib for all targets
uses: actions-rs/cargo@v1
with:
command: build
args: --lib --all-targets
- name: Doc
run: make doc
- name: Github pages 🚀
uses: JamesIves/github-pages-deploy-action@ba1486788b0490a235422264426c45848eac35c6 #v4.4.1
with:
folder: docs # The folder the action should deploy.
target-folder: condor
commit-message: 'Deploy documentation for ${{ github.ref_name }}'
# - name: Install Electron
# run: |
# sudo apt-get install --no-install-recommends -y libopenjp2-tools
# sudo dpkg --add-architecture i386
# sudo mkdir -pm755 /etc/apt/keyrings
# sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
# sudo apt update
# sudo apt install --install-recommends winehq-stable
# - name: Install Wasm Pack
# run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
# - name: Build packages and apps
# run: make build