UNPKG

skeet

Version:

Full-stack TypeScript Serverless Framework

69 lines (61 loc) 1.94 kB
import fs from 'fs' export const workerPluginYml = async ( workerName: string, envString: string, memory: string, cpu: string, maxConcurrency: string, maxInstances: string, minInstances: string ) => { fs.mkdirSync('.github/workflows', { recursive: true }) const filePath = `.github/workflows/worker-${workerName}.yml` const body = `name: ${workerName}Worker on: push: branches: - main paths: - '.github/workflows/worker-${workerName}.yml' jobs: build: runs-on: ubuntu-22.04 steps: - name: Checkout Repository uses: actions/checkout@v2 - name: Install Node.js uses: actions/setup-node@v2 with: node-version: '18.14.0' - name: Checkout the repository uses: actions/checkout@v2 - id: auth uses: google-github-actions/auth@v0 with: credentials_json: \${{ secrets.SKEET_GCP_SA_KEY }} - name: Set up Cloud SDK uses: google-github-actions/setup-gcloud@v0 - name: Deploy to Cloud Run run: | gcloud run deploy skeet-\${{ secrets.SKEET_APP_NAME }}-worker-${workerName} \\ --service-account=\${{ secrets.SKEET_APP_NAME }}@\${{ secrets.SKEET_GCP_PROJECT_ID }}.iam.gserviceaccount.com \\ --image=\${{ secrets.SKEET_CONTAINER_REGION }}/skeet-framework/skeet-worker-${workerName} \\ --memory=${memory} \\ --cpu=${cpu} \\ --concurrency=${maxConcurrency} \\ --max-instances=${maxInstances} \\ --min-instances=${minInstances} \\ --ingress=internal \\ --region=\${{ secrets.SKEET_GCP_REGION }} \\ --platform=managed \\ --quiet \\ --port=8080 \\ --vpc-connector="\${{ secrets.SKEET_APP_NAME }}-con" \\ --vpc-egress=all \\ --set-env-vars=${envString} ` return { filePath, body, } }