chore: add proper claude code guidelines #115
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |