From 66bb638e1055b3ba6eb035cfa66b8ac830ee6a00 Mon Sep 17 00:00:00 2001 From: Okiki Ojo Date: Tue, 18 Aug 2026 04:14:33 -0400 Subject: [PATCH] chore: add MISE tasks for benchmarking, commit validation, npm existence check, publishing, and release creation Signed-off-by: Okiki Ojo --- .mise/tasks/bench-filesystem-clients | 6 ++++++ .mise/tasks/commits | 15 +++++++++++++++ .mise/tasks/npm-exists | 5 +++++ .mise/tasks/publish-jsr | 8 ++++++++ .mise/tasks/publish-npm | 13 +++++++++++++ .mise/tasks/release | 8 ++++++++ 6 files changed, 55 insertions(+) create mode 100755 .mise/tasks/bench-filesystem-clients create mode 100755 .mise/tasks/commits create mode 100755 .mise/tasks/npm-exists create mode 100755 .mise/tasks/publish-jsr create mode 100755 .mise/tasks/publish-npm create mode 100755 .mise/tasks/release 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 -- 2.51.2