Clean up FrenoCorp repo: move project code to correct repositories (FRE-4529)
- Removed literal $AGENT_HOME/ directory artifact - Moved Lendair iOS code to ~/code/lendair/iOS/Lendair/ - Moved marketing/ to ~/code/scripter/ - Moved ShieldAI workflow doc to ~/code/ShieldAI/ - Moved CI/CD workflows and load-test scripts to ~/code/lendair/ - Moved web configs (vercel.json, .env.example, index.html) to ~/code/lendair/web/ - Removed root-level project configs (package.json, tsconfig.json, vite.config.ts, etc.) - Removed shared/exports/ and scripts/ - Updated all 8 agent AGENTS.md files with Repository Rules section - Clarified: FrenoCorp is for agent notes/memories/plans only, not project code Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
162
.github/workflows/ios-ci.yml
vendored
162
.github/workflows/ios-ci.yml
vendored
@@ -1,162 +0,0 @@
|
||||
name: iOS CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "Lendair/**"
|
||||
- ".github/workflows/ios-ci.yml"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "Lendair/**"
|
||||
- ".github/workflows/ios-ci.yml"
|
||||
|
||||
concurrency:
|
||||
group: ios-ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Swift Lint
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s ${{ env.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
env:
|
||||
XCODE_APP_PATH: ${{ vars.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
|
||||
- name: Swift Format Check
|
||||
run: |
|
||||
swift format lint Lendair/Models Lendair/Services Lendair/ViewModels Lendair/Views || {
|
||||
echo "::warning::Swift format issues detected (non-blocking)"
|
||||
}
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: macos-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s ${{ env.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
env:
|
||||
XCODE_APP_PATH: ${{ vars.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
|
||||
- name: Swift version
|
||||
run: swift --version
|
||||
|
||||
- name: Resolve dependencies
|
||||
run: swift package resolve
|
||||
working-directory: Lendair
|
||||
|
||||
- name: Build
|
||||
run: swift build --target LendairApp
|
||||
working-directory: Lendair
|
||||
|
||||
test:
|
||||
name: Test
|
||||
runs-on: macos-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s ${{ env.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
env:
|
||||
XCODE_APP_PATH: ${{ vars.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
|
||||
- name: Run tests
|
||||
run: swift test
|
||||
working-directory: Lendair
|
||||
|
||||
deploy-testflight:
|
||||
name: Deploy to TestFlight
|
||||
runs-on: macos-latest
|
||||
needs: test
|
||||
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Select Xcode
|
||||
run: sudo xcode-select -s ${{ env.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
env:
|
||||
XCODE_APP_PATH: ${{ vars.XCODE_APP_PATH || '/Applications/Xcode_15.4.app' }}
|
||||
|
||||
- name: Generate Xcode project
|
||||
run: swift package generate-xcodeproj
|
||||
working-directory: Lendair
|
||||
|
||||
- name: Create keychain for code signing
|
||||
run: |
|
||||
security create-keychain -p "" build.keychain
|
||||
security default-keychain -s build.keychain
|
||||
security unlock-keychain -p "" build.keychain
|
||||
security set-keychain-settings -t 3600 -u build.keychain
|
||||
|
||||
- name: Import codesigning certificates
|
||||
uses: apple-actions/import-codesign-certs@v2
|
||||
with:
|
||||
p12-file-base64: ${{ secrets.APPLE_DISTRIBUTION_CERT_BASE64 }}
|
||||
p12-password: ${{ secrets.APPLE_DISTRIBUTION_CERT_PASSWORD }}
|
||||
keychain: build.keychain
|
||||
|
||||
- name: Import provisioning profile
|
||||
run: |
|
||||
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
|
||||
echo "${{ secrets.APPLE_PROVISIONING_PROFILE }}" > ~/Library/MobileDevice/Provisioning\ Profiles/Lendair.mobileprovision
|
||||
|
||||
- name: Create Export Options Plist
|
||||
run: |
|
||||
cat > Lendair/ExportOptions.plist << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>method</key>
|
||||
<string>app-store</string>
|
||||
<key>uploadBitcode</key>
|
||||
<false/>
|
||||
<key>uploadSymbols</key>
|
||||
<true/>
|
||||
<key>compileBitcode</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
- name: Archive with xcodebuild
|
||||
run: |
|
||||
xcodebuild archive \
|
||||
-project Lendair/Lendair.xcodeproj \
|
||||
-scheme LendairApp \
|
||||
-configuration Release \
|
||||
-destination "generic/platform=iOS" \
|
||||
-archivePath Lendair/build/Lendair.xcarchive \
|
||||
CODE_SIGN_STYLE=Automatic \
|
||||
PROVISIONING_PROFILE_SPECIFIER=Automatic \
|
||||
DEVELOPMENT_TEAM=${{ secrets.APPLE_TEAM_ID }}
|
||||
|
||||
- name: Export IPA
|
||||
run: |
|
||||
xcodebuild -exportArchive \
|
||||
-archivePath Lendair/build/Lendair.xcarchive \
|
||||
-exportPath Lendair/build/export \
|
||||
-exportOptionsPlist Lendair/ExportOptions.plist
|
||||
|
||||
- name: Upload to TestFlight
|
||||
uses: apple-actions/upload-testflight-binary@v1
|
||||
with:
|
||||
app-path: Lendair/build/export/LendairApp.ipa
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
env:
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
81
.github/workflows/load-testing.yml
vendored
81
.github/workflows/load-testing.yml
vendored
@@ -1,81 +0,0 @@
|
||||
name: Load Testing
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "scripts/load-test/**"
|
||||
- ".github/workflows/load-testing.yml"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "scripts/load-test/**"
|
||||
- ".github/workflows/load-testing.yml"
|
||||
schedule:
|
||||
# Run load tests daily at 2 AM UTC
|
||||
- cron: "0 2 * * *"
|
||||
|
||||
concurrency:
|
||||
group: load-testing-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: scripts/load-test
|
||||
|
||||
jobs:
|
||||
load-test:
|
||||
name: Performance Load Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: npm
|
||||
cache-dependency-path: scripts/load-test/package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run load tests
|
||||
run: npm run load-test
|
||||
env:
|
||||
API_BASE_URL: ${{ secrets.API_BASE_URL || 'https://api.frenocorp.com' }}
|
||||
LOAD_TEST_CONCURRENCY: ${{ vars.LOAD_TEST_CONCURRENCY || 10 }}
|
||||
LOAD_TEST_DURATION: ${{ vars.LOAD_TEST_DURATION || 60 }}
|
||||
|
||||
- name: Upload results artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: load-test-results-${{ github.run_id }}
|
||||
path: scripts/load-test/reports/
|
||||
retention-days: 7
|
||||
|
||||
performance-baseline:
|
||||
name: Performance Baseline Check
|
||||
runs-on: ubuntu-latest
|
||||
needs: load-test
|
||||
if: github.event_name == 'pull_request'
|
||||
steps:
|
||||
- name: Download results
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: load-test-results-${{ github.run_id }}
|
||||
path: scripts/load-test/reports/
|
||||
|
||||
- name: Compare against baseline
|
||||
run: |
|
||||
if [ -f "scripts/load-test/reports/baseline.json" ]; then
|
||||
echo "Comparing against baseline..."
|
||||
# Add comparison logic here
|
||||
npm run compare-baseline
|
||||
else
|
||||
echo "No baseline found, creating initial baseline"
|
||||
npm run create-baseline
|
||||
fi
|
||||
env:
|
||||
BASELINE_THRESHOLD: ${{ vars.BASELINE_THRESHOLD || 0.1 }}
|
||||
107
.github/workflows/web-ci.yml
vendored
107
.github/workflows/web-ci.yml
vendored
@@ -1,107 +0,0 @@
|
||||
name: Web CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "*.json"
|
||||
- "*.ts"
|
||||
- "*.tsx"
|
||||
- "*.js"
|
||||
- "*.jsx"
|
||||
- "*.html"
|
||||
- ".github/workflows/web-ci.yml"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "*.json"
|
||||
- "*.ts"
|
||||
- "*.tsx"
|
||||
- "*.js"
|
||||
- "*.jsx"
|
||||
- "*.html"
|
||||
- ".github/workflows/web-ci.yml"
|
||||
|
||||
concurrency:
|
||||
group: web-ci-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Type Check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: npm
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Type check
|
||||
run: npx tsc --noEmit
|
||||
|
||||
test:
|
||||
name: Tests
|
||||
runs-on: ubuntu-latest
|
||||
needs: check
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: npm
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run tests
|
||||
run: npx vitest run --reporter=verbose
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
needs: test
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: npm
|
||||
cache-dependency-path: package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
|
||||
deploy:
|
||||
name: Deploy to Vercel
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Deploy to Vercel
|
||||
uses: amondnet/vercel-action@v30
|
||||
with:
|
||||
vercel-token: ${{ secrets.VERCEL_TOKEN }}
|
||||
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
|
||||
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
|
||||
vercel-args: --prod
|
||||
Reference in New Issue
Block a user