core(ci/husky): Added husky and CI Jobs

* core(package): adding rules in package
* feat(husky): Fixed lint job and miscellaneous fixes
- Changed lint.yml job name
- Fixed pnpm version in package.json to be straight version 10
- Added act in flake.nix to run actions locally
- Added all dist/ files to eslint ignored files
- Fixed Dockerfile to use correct casing (as -> AS)
This commit is contained in:
Maix0 2025-10-07 22:18:23 +02:00 committed by GitHub
parent ff0e218803
commit 8e4081f494
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 113 additions and 15 deletions

37
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,37 @@
name: Build
on:
push:
branches:
- "**"
pull_request:
branches:
- "**"
permissions:
contents: read
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Install dependencies with pnpm
working-directory: ./src
run: pnpm install
- name: Build
working-directory: ./src
run: pnpm run build

View file

@ -1,4 +1,4 @@
name: Build & Linter
name: Linter
on:
push:
@ -12,8 +12,8 @@ permissions:
contents: read
jobs:
build:
name: Build & Typecheck
linter:
name: Linter
runs-on: ubuntu-latest
steps:
@ -34,7 +34,3 @@ jobs:
- name: Check linting
working-directory: ./src
run: pnpm exec eslint . --max-warnings=0
- name: Build
working-directory: ./src
run: pnpm run build

View file

@ -1,2 +1,2 @@
#!/usr/bin/env sh
pnpm --prefix=./src/ lint-staged
pnpm lint-staged

View file

@ -50,6 +50,7 @@
sqlite-interactive
clang
tmux-setup
act
];
shellHook = ''
export PODMAN_COMPOSE_WARNING_LOGS="false";

32
package-lock.json generated Normal file
View file

@ -0,0 +1,32 @@
{
"name": "trans",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "trans",
"version": "0.0.0",
"license": "ISC",
"devDependencies": {
"husky": "^9.1.7"
}
},
"node_modules/husky": {
"version": "9.1.7",
"resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
"integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
"license": "MIT",
"bin": {
"husky": "bin.js"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
}
}
}
}

21
package.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "trans",
"version": "0.0.0",
"description": "",
"main": "",
"lint-staged": {
"*.{js,ts,jsx,tsx}": [
"eslint --fix"
]
},
"scripts": {
"dev:prepare": "husky"
},
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "pnpm@10",
"devDependencies": {
"husky": "^9.1.7"
}
}

10
pnpm-workspace.yaml Normal file
View file

@ -0,0 +1,10 @@
packages:
- ./src/*
nodeLinker: hoisted
onlyBuiltDependencies:
- better-sqlite3
- esbuild
- sharp
- bcrypt

View file

@ -1,5 +1,5 @@
**/node_modules
**/dist
**/Dockerfile
*/node_modules
*/dist
*/Dockerfile
.gitkeep
.dockerignore

View file

@ -1,7 +1,7 @@
FROM node:22-alpine as pnpm_base
FROM node:22-alpine AS pnpm_base
RUN npm install --global pnpm@10.14.0;
FROM pnpm_base as builder
FROM pnpm_base AS builder
ARG SERVICE

View file

@ -1,7 +1,9 @@
import js from '@eslint/js';
import { globalIgnores } from 'eslint/config';
import ts from 'typescript-eslint';
export default [
globalIgnores(['*/dist/'], 'dist files'),
js.configs.recommended,
...ts.configs.recommended,
{

View file

@ -15,8 +15,7 @@
},
"scripts": {
"build": "npm run build --workspaces --if-present",
"fclean": "rimraf \"**/dist\"",
"clean": "rimraf \"**/node_modules\"",
"distclean": "rimraf -v -g \"*/dist\"",
"install-all": "npm install",
"dev:prepare": "husky"
},