From cc533a43766916b38e34072672583124ecea2b0e Mon Sep 17 00:00:00 2001 From: Hunter Lovell Date: Fri, 6 Feb 2026 15:40:53 -0800 Subject: [PATCH] chore(ci): integration test schedule --- .github/workflows/ci.yml | 32 ----------- .github/workflows/integration-tests.yml | 70 +++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/integration-tests.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 106b7703..cd18aa81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -134,35 +134,3 @@ jobs: run: tar -xzf build-artifacts.tar.gz - name: Run Unit Tests run: pnpm test - - test-int: - name: Integration Tests - needs: [build] - if: github.event_name != 'pull_request' || (github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 - - name: Use Node.js 24.x - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version-file: .nvmrc - cache: "pnpm" - - name: Install dependencies - run: pnpm install --frozen-lockfile - - name: Download build artifacts - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4 - with: - name: build-artifacts - - name: Extract build artifacts - run: tar -xzf build-artifacts.tar.gz - - name: Run Integration Tests - run: pnpm test:int - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - DENO_DEPLOY_TOKEN: ${{ secrets.DENO_DEPLOY_TOKEN }} - DAYTONA_API_KEY: ${{ secrets.DAYTONA_API_KEY }} - MODAL_TOKEN_ID: ${{ secrets.MODAL_TOKEN_ID }} - MODAL_TOKEN_SECRET: ${{ secrets.MODAL_TOKEN_SECRET }} diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml new file mode 100644 index 00000000..e9ff7c78 --- /dev/null +++ b/.github/workflows/integration-tests.yml @@ -0,0 +1,70 @@ +# Run integration tests weekly and on-demand + +name: Integration Tests + +permissions: + contents: read + actions: write + +on: + schedule: + # Run every Monday at 14:00 UTC + - cron: "0 14 * * 1" + workflow_dispatch: # Allows triggering the workflow manually in GitHub UI + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - name: Install pnpm + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + - name: Use Node.js + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version-file: .nvmrc + cache: "pnpm" + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Build + run: pnpm build + - name: Create build archive + run: tar -czf build-artifacts.tar.gz libs/*/dist libs/*/.turbo .turbo 2>/dev/null || tar -czf build-artifacts.tar.gz libs/*/dist + - name: Upload build artifacts + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4 + with: + name: build-artifacts + path: build-artifacts.tar.gz + retention-days: 1 + + test-int: + name: Integration Tests + needs: [build] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - name: Install pnpm + uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 + - name: Use Node.js 24.x + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version-file: .nvmrc + cache: "pnpm" + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Download build artifacts + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4 + with: + name: build-artifacts + - name: Extract build artifacts + run: tar -xzf build-artifacts.tar.gz + - name: Run Integration Tests + run: pnpm test:int + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + DENO_DEPLOY_TOKEN: ${{ secrets.DENO_DEPLOY_TOKEN }} + DAYTONA_API_KEY: ${{ secrets.DAYTONA_API_KEY }} + MODAL_TOKEN_ID: ${{ secrets.MODAL_TOKEN_ID }} + MODAL_TOKEN_SECRET: ${{ secrets.MODAL_TOKEN_SECRET }}