-
Notifications
You must be signed in to change notification settings - Fork 0
/
Taskfile.yml
92 lines (80 loc) · 3.07 KB
/
Taskfile.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
# This file gives new contributors an easy way to get everything they need,
# assuming they have `cargo` and `Taskfile`.
# Generally we shouldn't be requiring running this to have a good dev loop —
# rust tools are independently good, and adding an intermediate layer means we're
# reimplementing things or getting in the way. Instead, this can be used to
# aggregate commands that's aren't yet integrated.
# Some of the file may be somewhat over-engineered!
version: "3"
vars:
vscode_extensions: |
prql.prql
matklad.rust-analyzer
mitsuhiko.insta
tasks:
install-dev-tools:
cmds:
- echo "\`install-dev-tools\` is renamed to \`setup-dev\` and will be removed soon."
- task: setup-dev
setup-dev:
desc: Install tools for PRQL development.
cmds:
# `--locked` installs from the underlying lock files (which is not the default?!)
- cargo install --locked cargo-insta default-target trunk mdbook mdbook-toc
- rustup target add wasm32-unknown-unknown
- python3 -m pip install -U maturin
- task: install-pre-commit
# We only suggest, rather than install; we don't want to intrude (maybe we're being too conservative?).
- task: suggest-vscode-extensions
- echo "All set up! ✅🚀"
suggest-vscode-extensions:
desc: Check and suggest VSCode extensions.
vars:
extensions:
# List extensions, or just return true if we can't find `code`.
sh: which code && code --list-extensions || true
missing_extensions: |
{{ range ( .vscode_extensions | trim | splitLines ) -}}
{{ if not (contains . $.extensions) }}❌ {{.}} {{else}}✅ {{.}} {{ end }}
{{ end -}}
status:
# If vscode isn't installed, or there are no missing extensions, return 0 and exit early.
- '[ ! -x "$(which code)" ] || {{ not (contains "❌" .missing_extensions) }}'
silent: true
cmds:
- |
echo "It looks like VSCode is installed but doesn't have all recommended extensions installed:
{{ .missing_extensions }}
Install them with:
task install-vscode-extensions
"
install-vscode-extensions:
desc: Install recommended VSCode extensions.
cmds:
- |
{{ range ( .vscode_extensions | trim | splitLines ) -}}
code --install-extension {{.}}
{{ end -}}
install-pre-commit:
# Someone might have this installed with `brew`, so only install if it can't be found.
status:
- which pre-commit
cmds:
- pip install -U pre-commit
build-all:
desc: Build everything. Running this isn't required when developing; it's for caching or as a reference.
vars:
default_target:
sh: default-target
targets: |
{{ .default_target }}
wasm32-unknown-unknown
cmds:
- |
{{ range ( .targets | trim | splitLines ) -}}
cargo build --workspace --all-targets --target={{.}}
{{ end -}}
# Build HTML assets.
- trunk build prql-web/index.html
# Build mdbook (which will also build the HTML assets).
- mdbook build reference/