-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
121 lines (103 loc) · 3.16 KB
/
Taskfile.yml
File metadata and controls
121 lines (103 loc) · 3.16 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# https://taskfile.dev
version: "3"
tasks:
default:
desc: Show available tasks
cmds:
- task --list
silent: true
# ----------------------------------------------------------------------------
# basic tasks
# ----------------------------------------------------------------------------
fmt:
desc: Format code with rustfmt
cmds:
- cargo fmt
lint:
desc: Run clippy linter
cmds:
- cargo clippy --workspace --all-targets --all-features
check:
desc: Run cargo check
cmds:
- cargo check --workspace --all-targets --all-features
test:
desc: Run all tests
cmds:
- cargo test --workspace --all-targets --all-features --verbose
# ----------------------------------------------------------------------------
# CI tasks
# ----------------------------------------------------------------------------
_ci-before-test:
internal: true
desc: Run before test tasks
deps: [fmt, lint, check]
ci:
desc: Run all CI checks (_ci-before-test, test)
deps: [_ci-before-test, test]
# ----------------------------------------------------------------------------
# Build tasks
# ----------------------------------------------------------------------------
build:
desc: Build all packages in debug mode
cmds:
- cargo build --workspace
build-release:
aliases: [release, buildr]
desc: Build all packages in release mode
cmds:
- cargo build --workspace --release
clean:
desc: Clean build artifacts
cmds:
- cargo clean
# ----------------------------------------------------------------------------
# Run tasks
# ----------------------------------------------------------------------------
run-server:
desc: Run WebSocket server
summary: |
Run with:
- task run-server
- task run-server HOST=127.0.0.1 PORT=8080 (default)
vars:
HOST: '{{ .HOST | default "127.0.0.1" }}'
PORT: "{{ .PORT | default 8080 }}"
cmds:
- |
cargo run -p server --bin server -- \
--host {{.HOST}} \
--port {{.PORT}}
run-client:
desc: "[for debug] Run CLI client (use CLIENT_ID env var or default to 'alice')"
summary: |
Run with:
- task run-client
- task run-client CLIENT_ID=alice (default)
- task run-client CLIENT_ID=charlie
- task run-client URL=ws://127.0.0.1:8080/ws
- task run-client-alice
aliases: [run-client-alice]
vars:
CLIENT_ID: '{{ .CLIENT_ID | default "alice" }}'
URL: '{{ .URL | default "ws://127.0.0.1:8080/ws" }}'
cmds:
- |
cargo run -p client --bin client -- \
--client-id {{.CLIENT_ID}} \
--url {{.URL}}
# デバッグ用途
run-client-bob:
desc: "[for debug] Run CLI client (use CLIENT_ID env var or default to 'bob')"
summary: |
Run with:
- task run-client-bob
- task run-client-bob URL=ws://127.0.0.1:8080/ws
vars:
CLIENT_ID: '{{ .CLIENT_ID | default "bob" }}'
URL: '{{ .URL | default "ws://127.0.0.1:8080/ws" }}'
cmds:
- |
cargo run -p client --bin client -- \
--client-id {{.CLIENT_ID}} \
--url {{.URL}}