Skip to content

chore: add proper claude code guidelines #115

chore: add proper claude code guidelines

chore: add proper claude code guidelines #115

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
name: Build and Test
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Set up Swift
uses: swift-actions/setup-swift@v2
with:
swift-version: "6.0"
- name: Run tests
run: swift test
- name: Build app
run: bun run build
lint:
name: Lint Swift code
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Install SwiftLint
run: brew install swiftlint
- name: Run SwiftLint
run: swiftlint lint --reporter github-actions-logging Hush.app
continue-on-error: false
validate-release-workflow:
name: Validate Release Workflow
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Validate GitHub Actions workflow
uses: actions/github-script@v7.0.1
with:
script: |
const fs = require('fs');
const path = require('path');
const yaml = require('js-yaml');
const file = fs.readFileSync(path.join(process.cwd(), '.github/workflows/release.yml'), 'utf8');
try {
const workflow = yaml.load(file);
console.log('Release workflow is valid YAML');
// Validate action-releaser configuration
const releaseStep = workflow.jobs.build.steps.find(step =>
step.uses && step.uses.includes('action-releaser'));
if (!releaseStep) {
console.error('Error: action-releaser not found in release workflow');
process.exit(1);
}
// Validate required inputs
// const requiredInputs = ['files', 'token', 'tag'];
// const missingInputs = requiredInputs.filter(input =>
// !releaseStep.with || !releaseStep.with[input]);
// if (missingInputs.length > 0) {
// console.error(`Error: Missing required inputs in action-releaser: ${missingInputs.join(', ')}`);
// process.exit(1);
// }
console.log('action-releaser configuration is valid');
} catch (error) {
console.log('Error parsing release workflow:');
console.log(error.message);
process.exit(1);
}
test-dmg-creation:
name: Test DMG Creation
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v6.0.2
- name: Install Bun
uses: oven-sh/setup-bun@v2.1.3
- name: Use cached node_modules
uses: actions/cache@v5.0.3
with:
path: node_modules
key: node-modules-${{ hashFiles('**/bun.lock') }}
restore-keys: |
node-modules-
- name: Install Dependencies
run: bun install
- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Install create-dmg
run: brew install create-dmg
- name: Build minimal app
run: |
# Build a simple app just to test DMG creation
bun run build
- name: Create DMG package
run: |
# Verify we can create a DMG
bun run package
# Verify DMG was created
test -f dist/Hush.dmg