From 39a0103066dcf6ff8c3ba9dc1e0e9acddc0b6d2c Mon Sep 17 00:00:00 2001 From: Teodorus Nathaniel Date: Mon, 6 Jul 2026 22:13:51 +0700 Subject: [PATCH 1/2] feat: detect rumdl dependency local --- .../actions/base/markdown-check/action.yml | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/.github/actions/base/markdown-check/action.yml b/.github/actions/base/markdown-check/action.yml index cfd2aea..8fdfcb9 100644 --- a/.github/actions/base/markdown-check/action.yml +++ b/.github/actions/base/markdown-check/action.yml @@ -60,10 +60,35 @@ runs: echo "files=${markdown_files[*]}" >> "$GITHUB_OUTPUT" fi - - name: Install rumdl + - name: Detect rumdl in package.json + id: rumdl-deps if: steps.resolved-markdown-files.outputs.any-changed == 'true' shell: bash working-directory: ${{ env.HOLDEX_WORKING_DIR || '.' }} + run: | + if [ -f package.json ] && grep -q '"rumdl"' package.json; then + echo "has-rumdl=true" >> "$GITHUB_OUTPUT" + else + echo "has-rumdl=false" >> "$GITHUB_OUTPUT" + fi + + - name: Install dependencies + if: steps.resolved-markdown-files.outputs.any-changed == 'true' && steps.rumdl-deps.outputs.has-rumdl == 'true' + shell: bash + working-directory: ${{ env.HOLDEX_WORKING_DIR || '.' }} + run: | + if [ "${{ inputs.package-manager }}" = "pnpm" ]; then + pnpm install --frozen-lockfile + elif [ "${{ inputs.package-manager }}" = "npm" ]; then + npm ci + else + bun i --frozen-lockfile + fi + + - name: Install rumdl (fallback) + if: steps.resolved-markdown-files.outputs.any-changed == 'true' && steps.rumdl-deps.outputs.has-rumdl != 'true' + shell: bash + working-directory: ${{ env.HOLDEX_WORKING_DIR || '.' }} run: | if [ "${{ inputs.package-manager }}" = "pnpm" ]; then pnpm add -g rumdl @@ -83,4 +108,16 @@ runs: if: steps.resolved-markdown-files.outputs.any-changed == 'true' shell: bash working-directory: ${{ env.HOLDEX_WORKING_DIR || '.' }} - run: rumdl check --output-format github --fail-on error ${{ steps.resolved-markdown-files.outputs.files }} + run: | + run_rumdl() { + if [ -x "./node_modules/.bin/rumdl" ]; then + ./node_modules/.bin/rumdl "$@" + elif command -v rumdl >/dev/null 2>&1; then + rumdl "$@" + else + echo "::error::rumdl not found locally or globally." >&2 + exit 1 + fi + } + + run_rumdl check --output-format github --fail-on error ${{ steps.resolved-markdown-files.outputs.files }} From 59124b68379180970dc1b1c3bb373090c07ca4ee Mon Sep 17 00:00:00 2001 From: Teodorus Nathaniel Date: Mon, 6 Jul 2026 22:13:56 +0700 Subject: [PATCH 2/2] docs: update behavior doc --- ACTIONS.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ACTIONS.md b/ACTIONS.md index 3a7fdd2..d28d0c2 100644 --- a/ACTIONS.md +++ b/ACTIONS.md @@ -80,7 +80,9 @@ Path: `/.github/actions/base/markdown-check` - Discovers changed markdown files (`.md`, `.mdx`) if `changed-files` is not provided. - Filters/uses markdown-only changed files. - Skips execution if no markdown files changed. -- Installs `rumdl` globally using selected package manager. +- If `rumdl` is declared in `package.json`, installs project dependencies with frozen lockfile. +- Otherwise installs `rumdl` globally using selected package manager. +- Uses project-local `rumdl` (`./node_modules/.bin/rumdl`) when available, otherwise global. - Runs `rumdl check --output-format github --fail-on error` on changed markdown files. - Respects `HOLDEX_WORKING_DIR` env var: all steps run in that directory when set.