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: