-
Notifications
You must be signed in to change notification settings - Fork 2
104 lines (86 loc) · 3.88 KB
/
deploy-randomness.yml
File metadata and controls
104 lines (86 loc) · 3.88 KB
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
name: Deploy Randomness
on:
workflow_dispatch:
env:
PM2_PROCESS_NAME: randomness
RANDOMNESS_DB_PATH: /home/randomness/randomness.sqlite
TXM_DB_PATH: /home/randomness/txm.sqlite
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
- uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2.0.2
with:
bun-version: '1.2.4'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0
- name: Build code
run: |
make randomness.build
- name: Copy files to server
uses: appleboy/scp-action@917f8b81dfc1ccd331fef9e2d61bdc6c8be94634 # v0.1.7
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_KEY }}
port: ${{ secrets.SERVER_PORT }}
source: "apps/randomness/build/*,node_modules/better-sqlite3,node_modules/bindings,node_modules/file-uri-to-path"
target: /home/deployer/randomness
strip_components: 1
rm: true
- name: Deploy randomness to server
uses: appleboy/ssh-action@25ce8cbbcb08177468c7ff7ec5cbfa236f9341e1 # v1.1.0
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_KEY }}
port: ${{ secrets.SERVER_PORT }}
# We copy better-sqlite3, bindings, and file-uri-to-path separately because the bundled file does not include
# better-sqlite3 and its dependencies
script: |
chmod -R o+rX /home/deployer/randomness
mv /home/deployer/randomness /tmp
sudo -u randomness bash -c '
rm -rf /home/randomness/build
rm -rf /home/randomness/node_modules
cp -r /tmp/randomness/randomness/build /home/randomness/build
mkdir -p /home/randomness/node_modules
cp -r /tmp/randomness/better-sqlite3 /home/randomness/node_modules/better-sqlite3
cp -r /tmp/randomness/bindings /home/randomness/node_modules/bindings
cp -r /tmp/randomness/file-uri-to-path /home/randomness/node_modules/file-uri-to-path
cd /home/randomness
rm -f .env
cat > .env <<-EOF
export PRIVATE_KEY=${{ secrets.RANDOMNESS_PRIVATE_KEY }}
export TXM_DB_PATH=/home/randomness/txm.sqlite
export RANDOMNESS_DB_PATH=/home/randomness/randomness.sqlite
export RANDOM_CONTRACT_ADDRESS=0xd7dafcdC292906540Cc3357E9fD913390256b978
export PRECOMMIT_DELAY=20
export POST_COMMIT_MARGIN=10
export BLOCK_TIME=2
export RPC_URL=https://rpc.testnet.happy.tech/http
export EVM_DRAND_GENESIS_TIMESTAMP_SECONDS=1727521075
export EVM_DRAND_PERIOD_SECONDS=3
export EVM_DRAND_MARGIN=10
export EVM_DRAND_URL=https://api.drand.sh/v2/beacons/evmnet
export HAPPY_GENESIS_TIMESTAMP_SECONDS=1741715688
export CHAIN_ID=216
export OTEL_EXPORTER_OTLP_ENDPOINT=http://148.113.212.211:4318/v1/traces
export LOG_COLORS=true
export LOG_TIMESTAMPS=true
EOF
# cf. https://github.com/appleboy/drone-ssh/issues/175
sed -i '/DRONE_SSH_PREV_COMMAND_EXIT_CODE/d' .env
npm rebuild
pm2 delete ${{ env.PM2_PROCESS_NAME }}
source .env && node ./build/migrate.es.js
source .env && pm2 start ./build/index.es.js \
--name ${{ env.PM2_PROCESS_NAME }}
pm2 save
'
rm -rf /tmp/randomness