sonic-server 1.5.0

Fast, lightweight and schema-less search backend.
# See <https://taskfile.dev/usage> and <https://taskfile.dev/reference/schema>
# to find all keys and their usage.
version: "3"

env:
  SELF: task {{ .ALIAS | default .TASK }} --

tasks:
  integration-test:
    desc: Runs integration tests.
    cmd: tests/integration/scripts/run.sh

  ci:
    desc: Runs all CI checks.
    cmds:
      - task: lint:deps
      - cargo fmt --check
      - cargo clippy
      - cargo build --locked
      - cargo test --locked
      - tests/integration/scripts/run.sh

  changelog:prepare:
    desc: Prepares changelog entries for the next release.
    cmd: ./scripts/changelog_prepare.sh {{.CLI_ARGS}}

  release:
    desc: Makes a new release (git tag). CD will build and release the binary.
    silent: true
    cmd: ./scripts/make_release.sh {{ .CLI_ARGS }}

  lint:deps:
    desc: Lints the dependency graph (checks for advisories, unwanted licenses, untrusted sources…).
    cmd: cargo deny check --show-stats
    preconditions:
      - sh: command -v cargo-deny >/dev/null
        msg: "`cargo deny` is required. Install using `cargo install cargo-deny --locked`."

  lint:md:
    desc: Lints Markdown files. You can pass a rule name to check it individually.
    aliases: [lint:md:*]
    silent: true
    cmd: markdownlint-cli2 '**/*.md' '!target' '!tests/integration/runner' '!LICENSE.md' 2>&1{{ if .MATCH }} | { ! grep {{ index .MATCH 0 }}; }{{ end }}
    preconditions:
      - sh: command -v markdownlint-cli2 >/dev/null
        msg: "`markdownlint-cli2` is required. See <https://github.com/DavidAnson/markdownlint-cli2#install>."