build: test/build in CI (#49)
This commit is contained in:
parent
2654e313b9
commit
85de8638db
6 changed files with 46 additions and 10 deletions
41
.github/workflows/test.yml
vendored
Normal file
41
.github/workflows/test.yml
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
name: Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
name: Test
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version:
|
||||||
|
- 20.19.x
|
||||||
|
- 22.17.x
|
||||||
|
os:
|
||||||
|
- macos-latest
|
||||||
|
- ubuntu-latest
|
||||||
|
- windows-latest
|
||||||
|
runs-on: "${{ matrix.os }}"
|
||||||
|
steps:
|
||||||
|
- run: git config --global core.autocrlf input
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||||
|
with:
|
||||||
|
node-version: "${{ matrix.node-version }}"
|
||||||
|
cache: "yarn"
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install --frozen-lockfile
|
||||||
|
- name: Build
|
||||||
|
run: yarn build
|
||||||
|
- name: Test
|
||||||
|
run: yarn lint && yarn test
|
||||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
|
@ -5,6 +5,6 @@
|
||||||
},
|
},
|
||||||
"eslint.validate": ["typescript"],
|
"eslint.validate": ["typescript"],
|
||||||
"[typescript]": {
|
"[typescript]": {
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn run build:code && yarn run build:schema",
|
"build": "yarn run build:code && yarn run build:schema",
|
||||||
"build:code": "tsc",
|
"build:code": "tsc",
|
||||||
"build:schema": "node --experimental-strip-types ./scripts/build-dxt-schema.js",
|
"build:schema": "node ./scripts/build-dxt-schema.js",
|
||||||
"dev": "tsc --watch",
|
"dev": "tsc --watch",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test:watch": "jest --watch",
|
"test:watch": "jest --watch",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { DxtManifestSchema, DxtSignatureInfoSchema } from "../src/schemas.ts";
|
import { DxtManifestSchema, DxtSignatureInfoSchema } from "../dist/schemas.js";
|
||||||
import * as z from "zod/v4";
|
import * as z from "zod/v4";
|
||||||
import fs from "node:fs/promises";
|
import fs from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
|
|
|
||||||
|
|
@ -73,15 +73,10 @@ temp/`;
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return empty array if file cannot be read", () => {
|
it("should return empty array if file cannot be read", () => {
|
||||||
const content = "*.log";
|
fs.mkdirSync(dxtIgnorePath); // Make a dir so readFile fails
|
||||||
fs.writeFileSync(dxtIgnorePath, content);
|
|
||||||
fs.chmodSync(dxtIgnorePath, 0); // Make file unreadable
|
|
||||||
|
|
||||||
const patterns = readDxtIgnorePatterns(tempDir);
|
const patterns = readDxtIgnorePatterns(tempDir);
|
||||||
expect(patterns).toEqual([]);
|
expect(patterns).toEqual([]);
|
||||||
|
|
||||||
// Restore permissions for cleanup
|
|
||||||
fs.chmodSync(dxtIgnorePath, 0o644);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2359,7 +2359,7 @@ ignore@^5.2.0:
|
||||||
|
|
||||||
ignore@^7.0.5:
|
ignore@^7.0.5:
|
||||||
version "7.0.5"
|
version "7.0.5"
|
||||||
resolved "https://artifactory.infra.ant.dev:443/artifactory/api/npm/npm-all/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
|
||||||
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
|
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
|
||||||
|
|
||||||
import-fresh@^3.2.1:
|
import-fresh@^3.2.1:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue