name: CI on: push: branches: - master - main pull_request: branches: - master - main jobs: check: name: Type Check & Lint runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Deno uses: denoland/setup-deno@v1 with: deno-version: v2.x - name: Check TypeScript types run: deno check mod.ts - name: Lint code run: deno lint continue-on-error: true - name: Format check run: deno fmt --check continue-on-error: true build: name: Build Test (Current Platform) runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Deno uses: denoland/setup-deno@v1 with: deno-version: v2.x - name: Compile for current platform run: | echo "Testing compilation for Linux x86_64..." deno compile --allow-all --no-check \ --output spark-test \ --target x86_64-unknown-linux-gnu mod.ts - name: Test binary execution run: | chmod +x spark-test ./spark-test --version || echo "Version command may not work yet - OK for now" ./spark-test help || echo "Help command may not work yet - OK for now" build-all: name: Build All Platforms runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Deno uses: denoland/setup-deno@v1 with: deno-version: v2.x - name: Compile all platform binaries run: bash scripts/compile-all.sh - name: Upload all binaries as artifact uses: actions/upload-artifact@v3 with: name: spark-binaries.zip path: dist/binaries/* retention-days: 30