# P5 Tasks
## tools
~~~sh
go install github.com/charmbracelet/vhs@latest
~~~
## build
~~~sh
cargo build --release --bin p5
~~~
## publish
### pulumi-automation
~~~sh
cargo publish --package pulumi-automation
~~~
### p5
~~~sh
cargo publish --package p5
~~~
### all
~~~sh
mask publish pulumi-automation
mask publish p5
~~~
## check
~~~sh
cargo clippy
cargo fmt --all -- --check
~~~
### all
~~~sh
set -e
mask check
mask test unit
mask test integration
mask vhs run
~~~
## fix
~~~sh
cargo clippy --fix
cargo fmt --all
~~~
## test
### build
~~~sh
docker build . -f Dockerfile -t p5:tests --target test
~~~
### unit
~~~sh
cargo test --workspace --lib --bins
~~~
### integration
~~~sh
set -e
mask test build
docker run --rm p5:tests "*integration"
~~~
### debug
~~~sh
set -e
mask test build
docker run -it --rm p5:tests "debug"
~~~
## vhs
### build
~~~sh
docker build . -f Dockerfile -t p5:vhs --target vhs
~~~
### run
~~~sh
set -e
mask vhs build
docker run -it --rm -v "$PWD/tapes/output:/app/tapes/output" p5:vhs
~~~