From 32b149d2d6537a9a87d68a50446bc93b07cedb7b Mon Sep 17 00:00:00 2001 From: Dennis Konnov Date: Thu, 6 Aug 2026 12:38:51 -0700 Subject: [PATCH] ci: add periodic tests that run the volume integration suite The volume integration tests (standalone volume-content access, no sandbox) are gated behind ENABLE_VOLUME_TESTS and never run in CI. A prod-side auth regression on that path (inc-2026-08-04) therefore went uncaught for ~24h. Add a scheduled workflow that runs the JS + Python suites every 6h with the volume tests enabled, and pings Slack on failure. Per-PR CI is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/js_sdk_tests.yml | 9 +++++ .github/workflows/periodic_tests.yml | 46 ++++++++++++++++++++++++++ .github/workflows/python_sdk_tests.yml | 9 +++++ 3 files changed, 64 insertions(+) create mode 100644 .github/workflows/periodic_tests.yml diff --git a/.github/workflows/js_sdk_tests.yml b/.github/workflows/js_sdk_tests.yml index 5d718ace66..8363114ade 100644 --- a/.github/workflows/js_sdk_tests.yml +++ b/.github/workflows/js_sdk_tests.yml @@ -12,6 +12,11 @@ on: required: false type: boolean default: false + enable-volume-tests: + description: 'Run the volume integration tests (sets ENABLE_VOLUME_TESTS)' + required: false + type: boolean + default: false secrets: E2B_API_KEY: required: true @@ -52,6 +57,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Enable volume tests + if: ${{ inputs.enable-volume-tests }} + run: echo "ENABLE_VOLUME_TESTS=1" >> "$GITHUB_ENV" + - name: Parse .tool-versions uses: wistia/parse-tool-versions@v2.1.1 with: diff --git a/.github/workflows/periodic_tests.yml b/.github/workflows/periodic_tests.yml new file mode 100644 index 0000000000..da9d9a19ca --- /dev/null +++ b/.github/workflows/periodic_tests.yml @@ -0,0 +1,46 @@ +name: Periodic Tests + +# Runs the SDK test suites on a schedule with the volume integration tests +# enabled, so prod-side regressions (e.g. a broken volume-content auth path) +# are caught without waiting for a PR. See inc-2026-08-04. + +on: + schedule: + - cron: '19 */6 * * *' # every 6 hours + workflow_dispatch: + +permissions: + contents: read + +jobs: + js: + name: JS SDK + uses: ./.github/workflows/js_sdk_tests.yml + with: + node-only: true + enable-volume-tests: true + secrets: + E2B_API_KEY: ${{ secrets.E2B_API_KEY }} + + python: + name: Python SDK + uses: ./.github/workflows/python_sdk_tests.yml + with: + enable-volume-tests: true + secrets: + E2B_API_KEY: ${{ secrets.E2B_API_KEY }} + + notify: + name: Notify on failure + needs: [js, python] + if: failure() + runs-on: ubuntu-latest + steps: + - name: Slack notification + uses: rtCamp/action-slack-notify@33ca3be66c6f378fe1610fd1d5258632dbed5e58 # v2.4.0 + env: + SLACK_COLOR: '#ff0000' + SLACK_TITLE: Periodic Tests Failed + SLACK_MESSAGE: 'Periodic SDK tests failed — check the run.' + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: 'monitoring-releases' diff --git a/.github/workflows/python_sdk_tests.yml b/.github/workflows/python_sdk_tests.yml index dab4506c2d..ade4a123e1 100644 --- a/.github/workflows/python_sdk_tests.yml +++ b/.github/workflows/python_sdk_tests.yml @@ -7,6 +7,11 @@ on: required: false type: string default: '' + enable-volume-tests: + description: 'Run the volume integration tests (sets ENABLE_VOLUME_TESTS)' + required: false + type: boolean + default: false secrets: E2B_API_KEY: required: true @@ -30,6 +35,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Enable volume tests + if: ${{ inputs.enable-volume-tests }} + run: echo "ENABLE_VOLUME_TESTS=1" >> "$GITHUB_ENV" + - name: Parse .tool-versions uses: wistia/parse-tool-versions@v2.1.1 with: