diff --git a/.mise/tasks/bench-filesystem-clients b/.mise/tasks/bench-filesystem-clients new file mode 100755 index 0000000..d42d1ca --- /dev/null +++ b/.mise/tasks/bench-filesystem-clients @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +#MISE description="Benchmark AWS Mountpoint and Azure BlobFuse mounts against driver, adapter, and facade layers." +set -euo pipefail + +deno ci +deno task bench:filesystem-clients diff --git a/.mise/tasks/commits b/.mise/tasks/commits new file mode 100755 index 0000000..770ce11 --- /dev/null +++ b/.mise/tasks/commits @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +#MISE description="Validate Conventional Commit messages for the selected Git range." +set -euo pipefail + +: "${HEAD_SHA:?HEAD_SHA is required}" +BASE_SHA="${BASE_SHA:-}" +if [[ -z "$BASE_SHA" || "$BASE_SHA" == '0000000000000000000000000000000000000000' ]]; then + BASE_SHA="$(git rev-list --max-parents=0 "$HEAD_SHA")" +fi + +npx --yes --package=@commitlint/cli@21.2.1 commitlint \ + --default-config \ + --from "$BASE_SHA" \ + --to "$HEAD_SHA" \ + --verbose diff --git a/.mise/tasks/npm-exists b/.mise/tasks/npm-exists new file mode 100755 index 0000000..68edc5f --- /dev/null +++ b/.mise/tasks/npm-exists @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#MISE description="Return success when @okikio/opfs already exists on npm." +set -euo pipefail + +npm view @okikio/opfs version >/dev/null 2>&1 diff --git a/.mise/tasks/publish-jsr b/.mise/tasks/publish-jsr new file mode 100755 index 0000000..4b45721 --- /dev/null +++ b/.mise/tasks/publish-jsr @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +#MISE description="Reverify and publish one immutable release to JSR." +set -euo pipefail + +: "${RELEASE_VERSION:?RELEASE_VERSION is required}" +deno ci +deno publish --dry-run --set-version "$RELEASE_VERSION" +deno publish --set-version "$RELEASE_VERSION" diff --git a/.mise/tasks/publish-npm b/.mise/tasks/publish-npm new file mode 100755 index 0000000..29fa625 --- /dev/null +++ b/.mise/tasks/publish-npm @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +#MISE description="Build, verify, and publish one immutable release to npm." +set -euo pipefail + +: "${RELEASE_VERSION:?RELEASE_VERSION is required}" +MODE="${NPM_AUTH_MODE:-trusted}" +if [[ "$MODE" == token ]]; then + : "${NPM_TOKEN:?NPM_TOKEN is required for token authentication}" + npm config set //registry.npmjs.org/:_authToken "$NPM_TOKEN" +fi + +mise run verify-npm +npm publish .release/npm/*.tgz --access public --provenance diff --git a/.mise/tasks/release b/.mise/tasks/release new file mode 100755 index 0000000..d808abe --- /dev/null +++ b/.mise/tasks/release @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +#MISE description="Create the semantic GitHub release for the already-validated main commit." +set -euo pipefail + +npx --yes \ + --package=semantic-release@25.0.8 \ + --package=conventional-changelog-conventionalcommits@9.3.1 \ + semantic-release