mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
Resolves merge conflicts: - apps/server/src/routes/terminal/common.ts: Keep randomBytes import, use @automaker/utils for createLogger - apps/ui/eslint.config.mjs: Use main's explicit globals list with XMLHttpRequest and MediaQueryListEvent additions - apps/ui/src/components/views/terminal-view.tsx: Keep our terminal improvements (killAllSessions, beforeunload, better error handling) - apps/ui/src/config/terminal-themes.ts: Keep our search highlight colors for all themes - apps/ui/src/store/app-store.ts: Keep our terminal settings persistence improvements (merge function) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
name: 'Setup Project'
|
|
description: 'Common setup steps for CI workflows - checkout, Node.js, dependencies, and native modules'
|
|
|
|
inputs:
|
|
node-version:
|
|
description: 'Node.js version to use'
|
|
required: false
|
|
default: '22'
|
|
check-lockfile:
|
|
description: 'Run lockfile lint check for SSH URLs'
|
|
required: false
|
|
default: 'false'
|
|
rebuild-node-pty-path:
|
|
description: 'Working directory for node-pty rebuild (empty = root)'
|
|
required: false
|
|
default: ''
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ inputs.node-version }}
|
|
cache: 'npm'
|
|
cache-dependency-path: package-lock.json
|
|
|
|
- name: Check for SSH URLs in lockfile
|
|
if: inputs.check-lockfile == 'true'
|
|
shell: bash
|
|
run: npm run lint:lockfile
|
|
|
|
- name: Configure Git for HTTPS
|
|
shell: bash
|
|
# Convert SSH URLs to HTTPS for git dependencies (e.g., @electron/node-gyp)
|
|
# This is needed because SSH authentication isn't available in CI
|
|
run: git config --global url."https://github.com/".insteadOf "git@github.com:"
|
|
|
|
- name: Install dependencies
|
|
shell: bash
|
|
# Use npm install instead of npm ci to correctly resolve platform-specific
|
|
# optional dependencies (e.g., @tailwindcss/oxide, lightningcss binaries)
|
|
# Skip scripts to avoid electron-builder install-app-deps which uses too much memory
|
|
run: npm install --ignore-scripts
|
|
|
|
- name: Install Linux native bindings
|
|
shell: bash
|
|
# Workaround for npm optional dependencies bug (npm/cli#4828)
|
|
# Explicitly install Linux bindings needed for build tools
|
|
run: |
|
|
npm install --no-save --force --ignore-scripts \
|
|
@rollup/rollup-linux-x64-gnu@4.53.3 \
|
|
@tailwindcss/oxide-linux-x64-gnu@4.1.17
|
|
|
|
- name: Build shared packages
|
|
shell: bash
|
|
# Build shared packages (types, utils, platform, etc.) before apps can use them
|
|
run: npm run build:packages
|
|
|
|
- name: Rebuild native modules (root)
|
|
if: inputs.rebuild-node-pty-path == ''
|
|
shell: bash
|
|
# Rebuild node-pty and other native modules for Electron
|
|
run: npm rebuild node-pty
|
|
|
|
- name: Rebuild native modules (workspace)
|
|
if: inputs.rebuild-node-pty-path != ''
|
|
shell: bash
|
|
# Rebuild node-pty and other native modules needed for server
|
|
run: npm rebuild node-pty
|
|
working-directory: ${{ inputs.rebuild-node-pty-path }}
|