Merge pull request #11 from penpot/ci

Add rudimentary GitHub CI
This commit is contained in:
Dominik Jain 2025-11-05 23:25:59 +01:00 committed by GitHub
commit 6f1b119c53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 84 additions and 1 deletions

63
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,63 @@
name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "npm"
- name: Install root dependencies
run: npm ci
- name: Check formatting
run: npm run format:check
- name: Install common dependencies
working-directory: ./common
run: npm ci
- name: Type check common
working-directory: ./common
run: npx tsc --noEmit
- name: Build common
working-directory: ./common
run: npm run build
- name: Install mcp-server dependencies
working-directory: ./mcp-server
run: npm ci
- name: Type check mcp-server
working-directory: ./mcp-server
run: npx tsc --noEmit
- name: Build mcp-server
working-directory: ./mcp-server
run: npm run build
- name: Install penpot-plugin dependencies
working-directory: ./penpot-plugin
run: npm ci
- name: Type check penpot-plugin
working-directory: ./penpot-plugin
run: npx tsc --noEmit
- name: Build penpot-plugin
working-directory: ./penpot-plugin
run: npm run build

19
package-lock.json generated
View File

@ -10,6 +10,9 @@
"dependencies": { "dependencies": {
"concurrently": "^8.2.2", "concurrently": "^8.2.2",
"kill-port": "^2.0.1" "kill-port": "^2.0.1"
},
"devDependencies": {
"prettier": "^3.0.0"
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
@ -215,6 +218,22 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/prettier": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/require-directory": { "node_modules/require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",

View File

@ -7,7 +7,8 @@
"build:all": "concurrently --names \"COMMON,MCP-SERVER,PLUGIN\" --prefix-colors \"green,cyan,magenta\" --success first \"npm --prefix common install && npm --prefix common run build\" \"npm --prefix mcp-server run build\" \"npm --prefix penpot-plugin run build\"", "build:all": "concurrently --names \"COMMON,MCP-SERVER,PLUGIN\" --prefix-colors \"green,cyan,magenta\" --success first \"npm --prefix common install && npm --prefix common run build\" \"npm --prefix mcp-server run build\" \"npm --prefix penpot-plugin run build\"",
"start:all": "concurrently --names \"MCP-SERVER,PLUGIN-SERVER\" --prefix-colors \"cyan,magenta\" --kill-others-on-fail \"npm --prefix mcp-server start\" \"npm --prefix penpot-plugin run dev\"", "start:all": "concurrently --names \"MCP-SERVER,PLUGIN-SERVER\" --prefix-colors \"cyan,magenta\" --kill-others-on-fail \"npm --prefix mcp-server start\" \"npm --prefix penpot-plugin run dev\"",
"bootstrap": "npm run install:all && npm run build:all && npm run start:all", "bootstrap": "npm run install:all && npm run build:all && npm run start:all",
"format": "prettier --write ." "format": "prettier --write .",
"format:check": "prettier --check ."
}, },
"repository": { "repository": {
"type": "git", "type": "git",