Skip to content

Commit 13dc071

Browse files
committed
Try new approach
1 parent 85b94c7 commit 13dc071

File tree

4 files changed

+73
-54
lines changed

4 files changed

+73
-54
lines changed

.github/workflows/demo-test.yaml

Lines changed: 6 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
name: "Demo Sanity Check"
1+
2+
name: "Demo test"
23

34
on:
5+
# We're using merge-chains; so this needs to run then.
46
merge_group:
57
push:
68
branches:
79
- master
8-
- release
910
pull_request:
10-
workflow_dispatch:
1111

1212
jobs:
1313
demo-test:
14+
runs-on: ${{ matrix.os }}
1415
strategy:
1516
matrix:
1617
os: [ubuntu-latest, macos-latest]
17-
runs-on: ${{ matrix.os }}
18-
name: "Test demo on ${{ matrix.os }}"
1918
steps:
2019
- uses: actions/checkout@v4
2120
with:
@@ -26,49 +25,7 @@ jobs:
2625
with:
2726
authToken: '${{ secrets.CACHIX_CARDANO_SCALING_AUTH_TOKEN }}'
2827

29-
- name: Set up and use the "demo" devShell
30-
uses: nicknovitski/nix-develop@v1
31-
with:
32-
arguments: ".#demo"
33-
34-
- name: Modify demo to run headlessly
28+
- name: ❄ Check demo test
3529
run: |
36-
sed -i.bak 's/is_foreground = true/is_foreground = false/g' nix/hydra/demo.nix
30+
nix develop .#demo -c bash -c "cd demo && ./test.sh"
3731
38-
- name: Create devnet log directory
39-
run: mkdir -p devnet/logs
40-
41-
- name: Run demo in background
42-
run: |
43-
nix run .#demo > process-compose.out 2> process-compose.err &
44-
echo $! > process-compose.pid
45-
sleep 5
46-
47-
- name: Wait for hydra nodes to be ready
48-
run: |
49-
set -e
50-
echo "Waiting for hydra nodes to start..."
51-
if ! nix shell nixpkgs#coreutils -c timeout 300s bash -c '
52-
until [ $(grep "is ready" devnet/logs/process-compose.log 2>/dev/null | wc -l) -ge 3 ]; do
53-
echo -n "."
54-
sleep 5
55-
if ! ps -p $(cat process-compose.pid) > /dev/null; then
56-
echo "Process-compose exited prematurely."
57-
exit 1
58-
fi
59-
done
60-
echo "All hydra nodes are ready!"
61-
'; then
62-
echo "Timed out or process-compose exited prematurely."
63-
echo "--- stdout ---"
64-
cat process-compose.out
65-
echo "--- stderr ---"
66-
cat process-compose.err
67-
echo "--- process-compose.log ---"
68-
cat devnet/logs/process-compose.log || echo "process-compose.log not found"
69-
exit 1
70-
fi
71-
- name: Stop demo
72-
if: always()
73-
run: |
74-
kill $(cat process-compose.pid) || true

demo/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
HYDRA_SCRIPTS_TX_ID="Missing required scripts references. Run './seed-devnet.sh' to publish scripts on-chain and solve this."
1+
HYDRA_SCRIPTS_TX_ID=8c26f01ff685c42030be0d55b2dd522d59091379a396924e928683985f92fe7c,f217857299cde5b8aad4fd7b447f2910d3df90b247b885240e4346172c6b4b5b,727e5bb00a85b23085c49ea94f050a3b6c0af65474e573fa4b77d2b636919924

demo/test.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
#!/usr/bin/env bash
3+
4+
set -euo pipefail
5+
6+
cleanup() {
7+
echo "--- Cleaning up"
8+
pkill -P $$ || true
9+
}
10+
11+
trap cleanup EXIT
12+
13+
echo "--- Setup devnet"
14+
./prepare-devnet.sh
15+
16+
echo "--- Starting cardano-node"
17+
cardano-node run \
18+
--config devnet/cardano-node.json \
19+
--topology devnet/topology.json \
20+
--database-path devnet/db \
21+
--socket-path devnet/node.socket \
22+
--shelley-operational-certificate devnet/opcert.cert \
23+
--shelley-kes-key devnet/kes.skey \
24+
--shelley-vrf-key devnet/vrf.skey > devnet/cardano-node.log 2>&1 &
25+
26+
echo "--- Waiting for socket"
27+
while [ ! -S "devnet/node.socket" ]; do
28+
sleep 1
29+
done
30+
echo "Socket created."
31+
32+
echo "--- Seeding devnet"
33+
export CARDANO_NODE_SOCKET_PATH=devnet/node.socket
34+
./seed-devnet.sh $(which cardano-cli) $(which hydra-node) --mainnet-era babbage
35+
36+
echo "--- Starting hydra-node"
37+
source .env
38+
hydra-node \
39+
--node-id 1 \
40+
--api-port 4001 \
41+
--monitoring-port 6001 \
42+
--peer 127.0.0.1:5002 \
43+
--peer 127.0.0.1:5003 \
44+
--hydra-signing-key alice.sk \
45+
--hydra-verification-key bob.vk \
46+
--hydra-verification-key carol.vk \
47+
--hydra-scripts-tx-id $HYDRA_SCRIPTS_TX_ID \
48+
--cardano-signing-key devnet/credentials/alice.sk \
49+
--cardano-verification-key devnet/credentials/bob.vk \
50+
--cardano-verification-key devnet/credentials/carol.vk \
51+
--ledger-protocol-parameters devnet/protocol-parameters.json \
52+
--testnet-magic 42 \
53+
--node-socket devnet/node.socket \
54+
--persistence-dir devnet/persistence/alice > devnet/hydra-node.log 2>&1 &
55+
56+
sleep 2
57+
echo "--- Checking for hydra-node"
58+
if cat devnet/hydra-node.log | grep '"tag":"APIServerStarted"'; then
59+
echo "OK"
60+
else
61+
echo "FAIL"
62+
cat devnet/hydra-node.log
63+
exit 1
64+
fi
65+

nix/hydra/demo.nix

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616

1717
processes = {
1818
prepare-devnet = {
19-
command = pkgs.writeShellScript "prepare-devnet-wrapped" ''
20-
export PATH=${pkgs.coreutils}/bin:${pkgs.gnused}/bin:${pkgs.findutils}/bin:$PATH
21-
exec ${self}/demo/prepare-devnet.sh
22-
'';
19+
command = "${self}/demo/prepare-devnet.sh";
2320
};
2421
cardano-node = {
2522
command = ''

0 commit comments

Comments
 (0)