-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.toml
138 lines (121 loc) · 2.99 KB
/
Makefile.toml
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
[config]
default_to_workspace = false
[tasks.default]
alias = "dev"
[tasks.dev]
description = "Build and run in development mode"
dependencies = [
"build-wasm-dev",
"build-api-dev",
"build-cli-dev",
"build-hugo-dev"
]
[tasks.release]
description = "Build and run in release mode"
dependencies = [
"build-wasm-release",
"build-api-release",
"build-cli-release",
"build-hugo-release"
]
[tasks.build-site]
description = "Build WebAssembly and Hugo site for deployment"
script = """
if [ -n "$GITHUB_ACTIONS" ]; then
if [ -d "hugo-site/static/wasm" ] && [ -n "$(ls -A hugo-site/static/wasm)" ]; then
echo "Using cached WebAssembly files"
else
echo "WebAssembly files not found in cache, rebuilding..."
cargo make build-wasm-release
fi
else
echo "Building WebAssembly files..."
cargo make build-wasm-release
fi
cd hugo-site
hugo --minify
echo "Contents of public/wasm after running hugo:"
ls -la public/wasm
"""
[tasks.build-wasm-dev]
description = "Build WebAssembly in development mode"
script = """
cd rust/gkwasm
wasm-pack build --dev --target web --out-dir ../../hugo-site/static/wasm --no-typescript
echo "Contents of hugo-site/static/wasm after wasm-pack build:"
ls -l ../../hugo-site/static/wasm
"""
[tasks.build-wasm-release]
description = "Build WebAssembly in release mode"
script = """
cd rust/gkwasm
mkdir -p ../../hugo-site/static/wasm
wasm-pack build --release --target web --out-dir ../../hugo-site/static/wasm --no-typescript
echo "Contents of hugo-site/static/wasm after wasm-pack build:"
ls -l ../../hugo-site/static/wasm
"""
[tasks.build-api-dev]
description = "Build API in development mode"
script = """
cd rust/api
cargo build
"""
[tasks.build-api-release]
description = "Build API in release mode"
script = """
cd rust/api
cargo build --release
"""
[tasks.build-cli-dev]
description = "Build CLI in development mode"
script = """
cd rust/cli
cargo build
"""
[tasks.build-cli-release]
description = "Build CLI in release mode"
script = """
cd rust/cli
cargo build --release
"""
[tasks.generate-delegate-keys]
description = "Generate delegate keys"
script = """
./rust/cli/generate_delegate_keys.sh --master-key ./path/to/master_signing_key.pem --delegate-dir ./path/to/delegate/dir
"""
[tasks.test-ghostkey]
description = "Run ghostkey tests"
script = """
./rust/cli/test_ghostkey.sh
"""
[tasks.build-hugo-dev]
description = "Build Hugo site in development mode"
dependencies = ["build-wasm-dev"]
script = """
cd hugo-site
hugo
"""
[tasks.build-hugo-release]
description = "Build Hugo site in release mode"
dependencies = ["build-wasm-release"]
script = """
cd hugo-site
hugo --minify
"""
[tasks.integration-test]
description = "Run all tests"
dependencies = ["dev"]
script = """
# Run unit tests for each crate
cd rust/gklib && cargo test
cd ../gkwasm && cargo test
cd ../api && cargo test
cd ../cli && cargo test
cd ../..
# Run ghostkey CLI tests
cd rust/cli
./test_ghostkey.sh
cd ../..
# Run integration tests
cd rust/integration_test && cargo run
"""