From a2a42d4613ba680d67d93c6b31e818683f55c1b0 Mon Sep 17 00:00:00 2001 From: Brian Rodriguez Date: Wed, 5 Mar 2025 13:11:35 -0500 Subject: [PATCH 1/3] build: make the CI checks an NPM script so that it can also be run locally --- .github/workflows/ci.yml | 19 ++----------------- .github/workflows/release.yml | 4 ++-- package.json | 2 ++ 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62d07e4..16ef551 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,23 +18,8 @@ jobs: - name: Install dependencies run: npm clean-install env: { HUSKY: 0 } - - - name: Build package - run: npm run build - - name: Build docs - run: npm run build:docs - - - name: Audit dependencies - run: > - npm audit - npm audit signatures - - name: Audit linting - run: npm run lint - - name: Audit type checks - run: npm run build:typescript - - name: Audit code coverage - run: npm run test:coverage - + - name: Run CI tasks + run: npm run build:ci - name: Upload test results to Codecov if: ${{ !cancelled() }} uses: codecov/test-results-action@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 74c3c75..ae2fb83 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,8 +23,8 @@ jobs: - name: Install dependencies run: npm clean-install env: { HUSKY: 0 } - - name: Build plugin - run: npm run build + - name: Ensure CI passes + run: npm run build:ci - name: Release update env: { GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" } run: npx semantic-release diff --git a/package.json b/package.json index 1c17438..c9245ae 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "type": "module", "main": "dist/main.js", "scripts": { + "audit": "npm audit && npm audit signatures", "build": "vite build", + "build:ci": "npm run audit && npm run lint && npm run build:typescript && npm run build && npm run test:coverage && npm run build:docs", "build:clean": "rm -rf node_modules/ dist/ coverage/ docs/", "build:docs": "typedoc --validation", "build:typescript": "tsc --build", From a6ed3f48298ef5863174d1c2dfce307ca3b42fd2 Mon Sep 17 00:00:00 2001 From: Brian Rodriguez Date: Wed, 5 Mar 2025 13:12:45 -0500 Subject: [PATCH 2/3] refactor: move merge logic into a generic util module --- .../{util/__tests__/merge.test.ts => __tests__/util.test.ts} | 2 +- src/model/task/{util/merge.ts => util.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/model/task/{util/__tests__/merge.test.ts => __tests__/util.test.ts} (99%) rename src/model/task/{util/merge.ts => util.ts} (100%) diff --git a/src/model/task/util/__tests__/merge.test.ts b/src/model/task/__tests__/util.test.ts similarity index 99% rename from src/model/task/util/__tests__/merge.test.ts rename to src/model/task/__tests__/util.test.ts index 7146c73..f105327 100644 --- a/src/model/task/util/__tests__/merge.test.ts +++ b/src/model/task/__tests__/util.test.ts @@ -1,7 +1,7 @@ import { DateTime } from "luxon"; import { describe, expect, it } from "vitest"; -import { mergeTaskParts } from "../merge"; +import { mergeTaskParts } from "../util"; describe(`${mergeTaskParts.name}`, () => { it("gives default values when called with nothing", () => { diff --git a/src/model/task/util/merge.ts b/src/model/task/util.ts similarity index 100% rename from src/model/task/util/merge.ts rename to src/model/task/util.ts From ac37d2755a249eebeb1b0fcf8c0de4139d7ff285 Mon Sep 17 00:00:00 2001 From: Brian Rodriguez Date: Wed, 5 Mar 2025 13:17:45 -0500 Subject: [PATCH 3/3] refactor: use consistent names for util folders * chore: include ".test" in ".const.ts" files --- src/model/collection/__tests__/{utils.test.ts => util.test.ts} | 2 +- src/model/collection/periodic-notes.ts | 2 +- src/model/collection/{utils.ts => util.ts} | 0 ...sidian-dataview.const.ts => obsidian-dataview.test.const.ts} | 0 src/model/task/lib/__tests__/obsidian-dataview.test.ts | 2 +- .../{luxon-utils.const.ts => luxon-utils.test.const.ts} | 0 src/util/__tests__/luxon-utils.test.ts | 2 +- 7 files changed, 4 insertions(+), 4 deletions(-) rename src/model/collection/__tests__/{utils.test.ts => util.test.ts} (91%) rename src/model/collection/{utils.ts => util.ts} (100%) rename src/model/task/lib/__tests__/{obsidian-dataview.const.ts => obsidian-dataview.test.const.ts} (100%) rename src/util/__tests__/{luxon-utils.const.ts => luxon-utils.test.const.ts} (100%) diff --git a/src/model/collection/__tests__/utils.test.ts b/src/model/collection/__tests__/util.test.ts similarity index 91% rename from src/model/collection/__tests__/utils.test.ts rename to src/model/collection/__tests__/util.test.ts index 262454f..403c82f 100644 --- a/src/model/collection/__tests__/utils.test.ts +++ b/src/model/collection/__tests__/util.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { sanitizeFolder } from "../utils"; +import { sanitizeFolder } from "../util"; describe(`${sanitizeFolder.name}`, () => { it("should strip trailing slashes", () => { diff --git a/src/model/collection/periodic-notes.ts b/src/model/collection/periodic-notes.ts index 62ae6c9..c3367b5 100644 --- a/src/model/collection/periodic-notes.ts +++ b/src/model/collection/periodic-notes.ts @@ -5,7 +5,7 @@ import { parse } from "path"; import { assertLuxonValidity } from "@/util/luxon-utils"; import { DateBasedCollection } from "./schema"; -import { sanitizeFolder } from "./utils"; +import { sanitizeFolder } from "./util"; /** * @see {@link https://github.com/liamcain/obsidian-periodic-notes} diff --git a/src/model/collection/utils.ts b/src/model/collection/util.ts similarity index 100% rename from src/model/collection/utils.ts rename to src/model/collection/util.ts diff --git a/src/model/task/lib/__tests__/obsidian-dataview.const.ts b/src/model/task/lib/__tests__/obsidian-dataview.test.const.ts similarity index 100% rename from src/model/task/lib/__tests__/obsidian-dataview.const.ts rename to src/model/task/lib/__tests__/obsidian-dataview.test.const.ts diff --git a/src/model/task/lib/__tests__/obsidian-dataview.test.ts b/src/model/task/lib/__tests__/obsidian-dataview.test.ts index af37d58..1f1ef92 100644 --- a/src/model/task/lib/__tests__/obsidian-dataview.test.ts +++ b/src/model/task/lib/__tests__/obsidian-dataview.test.ts @@ -2,7 +2,7 @@ import { constant } from "lodash"; import { afterEach, describe, expect, it, vi } from "vitest"; import { adaptDataviewMarkdownTask } from "../obsidian-dataview"; -import { NULL_DATAVIEW_TASK } from "./obsidian-dataview.const"; +import { NULL_DATAVIEW_TASK } from "./obsidian-dataview.test.const"; describe(`${adaptDataviewMarkdownTask.name}`, () => { afterEach(() => vi.resetAllMocks()); diff --git a/src/util/__tests__/luxon-utils.const.ts b/src/util/__tests__/luxon-utils.test.const.ts similarity index 100% rename from src/util/__tests__/luxon-utils.const.ts rename to src/util/__tests__/luxon-utils.test.const.ts diff --git a/src/util/__tests__/luxon-utils.test.ts b/src/util/__tests__/luxon-utils.test.ts index 0d074d2..7b42138 100644 --- a/src/util/__tests__/luxon-utils.test.ts +++ b/src/util/__tests__/luxon-utils.test.ts @@ -3,7 +3,7 @@ import { DateTime, DateTimeMaybeValid, Duration, DurationMaybeValid, Interval, I import { describe, expect, it } from "vitest"; import { assertIntervalsDoNotIntersect, assertLuxonValidity } from "../luxon-utils"; -import { WITH_OVERLAPPING_INTERVALS, WITHOUT_OVERLAPPING_INTERVALS } from "./luxon-utils.const"; +import { WITH_OVERLAPPING_INTERVALS, WITHOUT_OVERLAPPING_INTERVALS } from "./luxon-utils.test.const"; describe(`${assertLuxonValidity.name}`, () => { const reason = "user-provided reason";