Skip to content
This repository was archived by the owner on Jul 16, 2026. It is now read-only.

Nightly E2E

Nightly E2E #50

Workflow file for this run

name: Nightly E2E
on:
schedule:
- cron: "0 3 * * *"
workflow_dispatch:
permissions:
contents: read
issues: write
jobs:
full-e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.12"
- name: Install E2E dependencies
run: pip install -r tests/e2e/requirements.txt
- name: Run full E2E suite
id: run_e2e
run: bin/ci/run_e2e_full.sh
- name: Upload nightly E2E artifacts
if: always()
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: nightly-e2e-artifacts
path: artifacts/e2e-full
if-no-files-found: ignore
- name: Open or update nightly failure issue
if: failure()
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const title = "ci: nightly-e2e failing";
const body = [
"Nightly E2E failed.",
"",
`Run: ${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`,
`Commit: ${context.sha}`,
].join("\n");
const { data: issues } = await github.rest.issues.listForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
state: "open",
per_page: 100,
});
const existing = issues.find((i) => i.title === title);
if (existing) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: existing.number,
body,
});
} else {
await github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title,
body,
labels: ["ci", "nightly"],
});
}