version: "3" silent: true tasks: default: desc: Run the Jefer binary in development mode summary: | Run the Jefer binary. This command will invoke Cargo to build & run the Jefer binary in development mode. This means the generated binary is unoptimised & isn't production ready yet. It should only be used for quick development tests. cmds: - cargo run setup: desc: Setup the local development environment for working on the project. summary: | Setup the local development environment. This command helps in setting up the local development environment with one quick command instead of multiple individual commands. This should reduce the need for much manual intervention. cmds: - cargo build - pre-commit install --install-hooks - task: install:docs install:docs: desc: Install the necessary dependencies for the documentations summary: | Install dependencies for the documentations. This command will install the necessary dependencies for building the documentations locally. The documentations are setup in a way which means you needn't install Hugo locally, the command will take care of it! dir: docs sources: - package.json generates: - package-lock.json cmds: - npm install build:docs: desc: Build & serve the documentations on the local web browser summary: | Build & serve the documentations locally. This command will first check if the necessary dependencies are available locally & if not then install. After that, it'll invoke Hugo to build & serve the documentations on the local web browser. dir: docs deps: - install:docs cmds: - npm run start pre-commit: desc: Run the pre-commit hooks on all files of the repository summary: | Run Pre-Commit hooks on all files. This command will invoke the pre-commit hooks on all files of the repository. This is necessary to check if there are any inconsistencies with the source code before committing them. cmds: - pre-commit run --all-files build:bin: desc: Build the Jefer binary for further local testing summary: | Build the Jefer binary for local testing. This command will invoke Cargo to build the Jefer binary locally for testing. sources: - "src/main.rs" generates: - target/* cmds: - cargo build --release tests: desc: Run all the unit & integration tests summary: | Run the unit & integration tests This command will invoke Cargo to run all the available unit & integration tests. cmds: - cargo test