name: Fly Deploy on: push: branches: - main # schedule: # - cron: '0 */4 * * *' env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} BULL_AUTH_KEY: ${{ secrets.BULL_AUTH_KEY }} FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} HOST: ${{ secrets.HOST }} LLAMAPARSE_API_KEY: ${{ secrets.LLAMAPARSE_API_KEY }} LOGTAIL_KEY: ${{ secrets.LOGTAIL_KEY }} NUM_WORKERS_PER_QUEUE: ${{ secrets.NUM_WORKERS_PER_QUEUE }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} PLAYWRIGHT_MICROSERVICE_URL: ${{ secrets.PLAYWRIGHT_MICROSERVICE_URL }} PORT: ${{ secrets.PORT }} REDIS_URL: ${{ secrets.REDIS_URL }} SCRAPING_BEE_API_KEY: ${{ secrets.SCRAPING_BEE_API_KEY }} SUPABASE_ANON_TOKEN: ${{ secrets.SUPABASE_ANON_TOKEN }} SUPABASE_SERVICE_TOKEN: ${{ secrets.SUPABASE_SERVICE_TOKEN }} SUPABASE_URL: ${{ secrets.SUPABASE_URL }} TEST_API_KEY: ${{ secrets.TEST_API_KEY }} jobs: pre-deploy: name: Pre-deploy checks runs-on: ubuntu-latest services: redis: image: redis ports: - 6379:6379 steps: - uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '20' - name: Install pnpm run: npm install -g pnpm - name: Install dependencies run: pnpm install working-directory: ./apps/api - name: Start the application run: npm start & working-directory: ./apps/api id: start_app - name: Start workers run: npm run workers & working-directory: ./apps/api id: start_workers - name: Run E2E tests run: | npx jest --detectOpenHandles --forceExit --openHandlesTimeout=120000 --watchAll=false working-directory: ./apps/api deploy: name: Deploy app runs-on: ubuntu-latest needs: pre-deploy steps: - uses: actions/checkout@v3 - name: Change directory run: cd apps/api - uses: superfly/flyctl-actions/setup-flyctl@master - run: flyctl deploy ./apps/api --remote-only -a firecrawl-scraper-js env: FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}