- Manual method
- Go to
crates.io, sign in, and create an API token in Account Settings > API Tokens.
- Use
cargo login <token> to save the token in $CARGO_HOME/credentials.toml.
just build; just clippy; just run; just doc; cargo package --locked
- Review the packaging output in
target/mdbook-utils/package or use cargo package --list.
- When ready,
cargo publish --locked --dry-run; cargo publish --locked
- Docker Compose method
- Pass the
publish.sh script (and required argument -y) as a command to docker compose run.
- Pass the
CRATES_TOKEN env. variable (which is used by publish.sh) to Docker Compose using --env.
export CRATES_TOKEN="<token from crates.io>"
docker compose -f .devcontainer/compose.yaml -f .devcontainer/compose-ci.yaml run \
--rm --env CRATES_TOKEN mdbook-utils .devcontainer/publish.sh -y