85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - main
 | |
|       - 'migration/**'
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - 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 mailer-test \
 | |
|             --target x86_64-unknown-linux-gnu mod.ts
 | |
| 
 | |
|       - name: Test binary execution
 | |
|         run: |
 | |
|           chmod +x mailer-test
 | |
|           ./mailer-test --version
 | |
|           ./mailer-test help
 | |
| 
 | |
|   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: mailer-binaries.zip
 | |
|           path: dist/binaries/*
 | |
|           retention-days: 30
 |