Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
71d8955
fix: 잘λͺ»λœ import μˆ˜μ • (ignore case)
toothlessdev Jan 10, 2026
620b639
feature: typecheck script μΆ”κ°€
toothlessdev Jan 10, 2026
be27065
chore: github action ci workflow μΆ”κ°€
toothlessdev Jan 10, 2026
1610c9f
docs: PR template μˆ˜μ •
toothlessdev Jan 10, 2026
d9e0cab
Merge branch 'develop' into 3-setup-github-action-ci-workflow-yarn-be…
toothlessdev Jan 10, 2026
591acea
chore: case sensitive ν•œ 파일 제거
toothlessdev Jan 10, 2026
d42f415
chore: λΆˆν•„μš”ν•œ ts-node μ˜μ‘΄μ„± 제거
toothlessdev Jan 10, 2026
8859574
feature: test coverage 리포트λ₯Ό μœ„ν•œ μ˜μ‘΄μ„± μΆ”κ°€ 및 reporter μ„€μ •
toothlessdev Jan 10, 2026
80fc08a
fix: yarn berry checksum 좩돌 μˆ˜μ •
toothlessdev Jan 10, 2026
8cde5b6
ci: test coverage 및 μ•„ν‹°νŒ©νŠΈ μ—…λ‘œλ“œ step μΆ”κ°€
toothlessdev Jan 10, 2026
2d4f313
chore: tsc noImplicitAny ν•΄μ œ
toothlessdev Jan 10, 2026
7df558c
fix: typecheck, lint, test task 이전 build 에 μ˜μ‘΄ν•˜λ„λ‘ μˆ˜μ •
toothlessdev Jan 10, 2026
5777a0f
fix: git ls-files 에 λ“±λ‘λœ μ€‘λ³΅λœ case sensitive파일 제거
toothlessdev Jan 10, 2026
6e04ae1
fix: eslint μ—μ„œ config 파일 제거
toothlessdev Jan 10, 2026
fbc91d0
fix: eslint μ—μ„œ .mjs 파일 제거
toothlessdev Jan 10, 2026
865e420
feature: test report pr comment μΆ”κ°€
toothlessdev Jan 10, 2026
53e1de8
fix: 잘λͺ»λœ test report 경둜 μˆ˜μ •
toothlessdev Jan 10, 2026
f2aebec
chore: test report log μˆ˜μ •
toothlessdev Jan 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
## πŸ“Ž Related issues

- resolve #
- resolve #

## πŸ“¦ Scope

<!--이번 λ³€κ²½μœΌλ‘œ 영ν–₯을 λ°›λŠ” νŒ¨ν‚€μ§€λ₯Ό μ„ νƒν•΄μ£Όμ„Έμš”.-->

- [ ] @patchlogr/core
- [ ] @patchlogr/cli
- [ ] @patchlogr/inspector
- [ ] @patchlogr/oas
- [ ] @patchlogr/types
- [ ] docs, examples
- [ ] tests
- [ ] ci / cd / infra
- [ ] other (μ•„λž˜μ— λͺ…μ‹œ)

## πŸ“¦ Scope
<!--이번 λ³€κ²½μœΌλ‘œ 영ν–₯을 λ°›λŠ” νŒ¨ν‚€μ§€λ₯Ό μ„ νƒν•΄μ£Όμ„Έμš”.-->
Expand Down Expand Up @@ -35,6 +49,6 @@

## βœ… Checklist

- [ ] μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έ μΆ©μ‘±
- [ ] ν…ŒμŠ€νŠΈ μΆ”κ°€ / μˆ˜μ •
- [ ] deterministic output 확인
- [ ] μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έ μΆ©μ‘±
- [ ] ν…ŒμŠ€νŠΈ μΆ”κ°€ / μˆ˜μ •
- [ ] deterministic output 확인
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Continuous Integration

on:
pull_request:
types: [opened, synchronize]
workflow_dispatch:

permissions:
contents: read
checks: write
actions: read
pull-requests: write

env:
NODE_VERSION: "24"

jobs:
build-and-test:
name: Build & Test
timeout-minutes: 15
runs-on: ubuntu-latest

steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Enable Corepack (Yarn Berry)
run: corepack enable

- name: Setup Yarn Berry
run: yarn set version 4.12.0

- name: Restore Yarn Cache
uses: actions/cache@v4
with:
path: |
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.pnp.cjs
key: yarn-${{runner.os}}-${{hashFiles('**/yarn.lock')}}
restore-keys: yarn-${{runner.os}}-

- name: Install Dependencies (Yarn Berry)
run: yarn install --immutable

- name: Restore Turborepo Cache
uses: actions/cache@v4
with:
path: .turbo
key: turbo-${{runner.os}}-${{hashFiles('turbo.json', 'package.json', '**/package.json')}}
restore-keys: turbo-${{runner.os}}-

- name: Run Typecheck
run: yarn typecheck

- name: Run Lint
run: yarn lint

- name: Run Tests
run: yarn test

- name: Report Test Logs
uses: dorny/test-reporter@v1
if: (!cancelled())
with:
name: Test Logs
path: "**/.coverage/report.xml"
reporter: java-junit

- name: Upload Test Artifacts
uses: actions/upload-artifact@v4
if: (!cancelled())
with:
name: Test Reports
path: |
**/.coverage/report.xml
**/coverage/**/*
retention-days: 7

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: (!cancelled())
with:
files: "**/.coverage/report.xml"
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,7 @@ node_modules
.turbo

# build files
dist
dist

# test files
.coverage
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export default tseslint.config(
"**/coverage/**",
"**/.yarn/**",
"**/.pnp.*",
"**/*.mjs",
],
},
js.configs.recommended,
Expand Down
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,19 @@
"packages/*"
],
"scripts": {
"dev": "turbo run dev",
"build": "turbo run build",
"test": "turbo run test",
"lint": "turbo run lint",
"typecheck": "turbo run typecheck",
"dev": "turbo run dev --cache-dir=.turbo",
"build": "turbo run build --cache-dir=.turbo",
"test": "turbo run test --cache-dir=.turbo",
"lint": "turbo run lint --cache-dir=.turbo",
"typecheck": "turbo run typecheck --cache-dir=.turbo",
"clean": "turbo run clean && rm -rf node_modules .turbo"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@types/node": "24",
"@typescript-eslint/eslint-plugin": "^8.51.0",
"@typescript-eslint/parser": "^8.51.0",
"@vitest/ui": "^4.0.16",
"esbuild": "0.27.2",
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
Expand Down
3 changes: 2 additions & 1 deletion packages/patchlogr-oas/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
},
"scripts": {
"lint": "eslint .",
"test": "vitest"
"test": "vitest",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"@types/node": "24",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { OASStageContext } from "./OASStageContext";
import { PipelineStage } from "./PipelineExecutor";
import { canonicalizeOASV2 } from "../canonicalize/v2";
import { canonicalizeOASV3 } from "../canonicalize/v3";
import { isOpenAPIV2, isOpenAPIV3 } from "../utils/OASVersionUtils";
import { isOpenAPIV2, isOpenAPIV3 } from "../utils/oasVersionUtils";

/**
* ν‘œμ€€ν™”λœ CanonicalSpec둜 λ³€ν™˜
Expand Down
2 changes: 1 addition & 1 deletion packages/patchlogr-oas/src/pipeline/OASValidationStage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import SwaggerParser from "@apidevtools/swagger-parser";

import { PipelineStage } from "./PipelineExecutor";
import { OASStageContext } from "./OASStageContext";
import { getOASVersion } from "../utils/OASVersionUtils";
import { getOASVersion } from "../utils/oasVersionUtils";

/**
* OAS λ¬Έμ„œμ˜ μœ νš¨μ„± 검사
Expand Down
18 changes: 0 additions & 18 deletions packages/patchlogr-oas/src/utils/OASVersionUtils.ts

This file was deleted.

68 changes: 0 additions & 68 deletions packages/patchlogr-oas/src/utils/__tests__/OASVersionUtils.test.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, expect, test } from "vitest";
import { getOASVersion, isOpenAPIV2, isOpenAPIV3 } from "../OASVersionUtils";
import { getOASVersion, isOpenAPIV2, isOpenAPIV3 } from "../oasVersionUtils";

describe("OASVersionUtils", () => {
test("getOASVersion should return correct version for 3.+", () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/patchlogr-types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"scripts": {
"build": "tsc",
"lint": "eslint .",
"test": "vitest"
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"@types/node": "24",
Expand Down
1 change: 1 addition & 0 deletions tsconfig.base.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"allowSyntheticDefaultImports": true,

"strict": true,
"noImplicitAny": false,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"useUnknownInCatchVariables": true,
Expand Down
1 change: 1 addition & 0 deletions turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"outputs": []
},
"typecheck": {
"dependsOn": ["^build"],
"inputs": ["src/**", "package.json", "tsconfig.json"],
"outputs": []
},
Expand Down
6 changes: 6 additions & 0 deletions vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,11 @@ export default defineConfig({
reporter: ["text", "html", "lcov"],
reportsDirectory: "./coverage",
},
reporters: ["default", "junit", "json", "html"],
outputFile: {
junit: "./.coverage/report.xml",
json: "./.coverage/report.json",
html: "./.coverage/report.html",
},
},
});
Loading
Loading