Skip to content
Merged
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
d3dc60f
Use new runner for testsuite
jdetter Nov 13, 2025
8f0e79d
Run job in container
jdetter Nov 13, 2025
eefdd0b
Use custom container
jdetter Nov 13, 2025
71980d3
Use local container
jdetter Nov 13, 2025
3d22d05
updated workflow
jdetter Nov 13, 2025
62a4f7e
Fix run for fallocate test
jdetter Nov 13, 2025
ac437f8
Run smoketests on the custom runner
jdetter Nov 13, 2025
fa624f9
Rerun CI
jdetter Nov 13, 2025
7ba5a74
Potential fix
jdetter Nov 13, 2025
d50a347
One-liner
jdetter Nov 13, 2025
9e92535
Indenting fix
jdetter Nov 13, 2025
4cd95dc
Use docker in docker
jdetter Nov 13, 2025
29b0859
Fix copy/paste issue
jdetter Nov 13, 2025
b8769b7
Add debug step
jdetter Nov 13, 2025
5112401
Remove debug
jdetter Nov 13, 2025
6ef59eb
Few docker updates
jdetter Nov 14, 2025
325901f
Let's give the unreal engine testsuite a try
jdetter Nov 14, 2025
14a2f1f
Fix
jdetter Nov 14, 2025
4ec0cfe
Let's try the Unity tests as well
jdetter Nov 14, 2025
04b25fa
Try unity testsuite again
jdetter Nov 14, 2025
27bb5c0
Use start docker so that the testsuite can access docker
jdetter Nov 14, 2025
84e344e
Rebuild
jdetter Nov 14, 2025
5458647
Rebuild again
jdetter Nov 14, 2025
96090a0
Use cargo home instead
jdetter Nov 14, 2025
c3faf0c
Fix cgroups error
jdetter Nov 14, 2025
bb2462e
Remove debug
jdetter Nov 14, 2025
4d33efd
All tests are passing
jdetter Nov 14, 2025
c96eeef
Merge branch 'master' into jdetter/use-new-runner
jdetter Nov 14, 2025
8384f9a
Try sequential testing for UnrealEngine
jdetter Nov 14, 2025
2ddb8a1
Merge remote-tracking branch 'origin/jdetter/use-new-runner' into jde…
jdetter Nov 14, 2025
f9bd412
Merge branch 'master' into jdetter/use-new-runner
jdetter Nov 17, 2025
5eec82c
Serial test
jdetter Nov 17, 2025
d6ac573
Use --test-threads properly
jdetter Nov 17, 2025
5552c9a
Update comment
jdetter Nov 17, 2025
7213e91
Restored runner line
jdetter Nov 17, 2025
95ba1aa
[bfops/cancel-internal-tests]: CI - Cancel internal tests if cancelled
bfops Nov 17, 2025
f95fa59
[bfops/cancel-internal-tests]: empty commit to test CI
bfops Nov 17, 2025
51eecb9
[bfops/cancel-internal-tests]: fix?
bfops Nov 17, 2025
461b73c
[bfops/cancel-internal-tests]: empty commit to test CI
bfops Nov 17, 2025
8c22386
Eliminated some options in running the unreal tests
jdetter Nov 17, 2025
0ee9c40
[bfops/cancel-internal-tests]: Merge remote-tracking branch 'origin/j…
bfops Nov 17, 2025
75d488c
Merge branch 'master' into bfops/cancel-internal-tests
bfops Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 45 additions & 9 deletions .github/workflows/internal-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,20 @@ jobs:
# Skip if this is an external contribution. GitHub secrets will be empty, so the step would fail anyway.
if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork }}
runs-on: ubuntu-latest
env:
TARGET_OWNER: clockworklabs
TARGET_REPO: SpacetimeDBPrivate
steps:
- name: Trigger and wait for Internal Tests
- id: dispatch
name: Trigger tests
uses: actions/github-script@v7
with:
github-token: ${{ secrets.SPACETIMEDB_PRIVATE_TOKEN }}
script: |
const targetOwner = 'clockworklabs';
const targetRepo = 'SpacetimeDBPrivate';
const workflowId = 'ci.yml';
const targetRef = 'master';
const targetOwner = process.env.TARGET_OWNER;
const targetRepo = process.env.TARGET_REPO;
// Use the ref for pull requests because the head sha is brittle (github does some extra dance where it merges in master).
const publicRef = (context.eventName === 'pull_request') ? context.payload.pull_request.head.ref : context.sha;
const preDispatch = new Date().toISOString();
Expand All @@ -48,12 +52,10 @@ jobs:

const sleep = (ms) => new Promise(r => setTimeout(r, ms));

// Wait for workflow to be kicked off
await sleep(30000);

// Find the dispatched run by name
let runId = null;
for (let attempt = 0; attempt < 20 && !runId; attempt++) { // up to ~10 minutes to locate the run
await sleep(5000);
const runsResp = await github.rest.actions.listWorkflowRuns({
owner: targetOwner,
repo: targetRepo,
Expand All @@ -72,7 +74,6 @@ jobs:
runId = candidates[0].id;
break;
}
await sleep(30000);
}

if (!runId) {
Expand All @@ -83,9 +84,23 @@ jobs:
// Provide direct link and context prior to waiting
const runUrl = `https://github.com/${targetOwner}/${targetRepo}/actions/runs/${runId}`;
core.info(`View run: ${runUrl}`);
core.info('Waiting for workflow result...');

// Wait for completion
core.setOutput('run_id', String(runId));
core.setOutput('run_url', runUrl);

- name: Wait for Internal Tests to complete
uses: actions/github-script@v7
with:
github-token: ${{ secrets.SPACETIMEDB_PRIVATE_TOKEN }}
script: |
const targetOwner = process.env.TARGET_OWNER;
const targetRepo = process.env.TARGET_REPO;
const runId = Number(`${{ steps.dispatch.outputs.run_id }}`);
const runUrl = `${{ steps.dispatch.outputs.run_url }}`;
const sleep = (ms) => new Promise(r => setTimeout(r, ms));

core.info(`Waiting for workflow result... ${runUrl}`);

let conclusion = null;
for (let attempt = 0; attempt < 240; attempt++) { // up to ~2 hours
const runResp = await github.rest.actions.getWorkflowRun({
Expand All @@ -110,3 +125,24 @@ jobs:
if (conclusion !== 'success') {
core.setFailed(`Private workflow failed with conclusion: ${conclusion}`);
}

- name: Cancel invoked run if workflow cancelled
if: ${{ cancelled() }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.SPACETIMEDB_PRIVATE_TOKEN }}
script: |
const targetOwner = process.env.TARGET_OWNER;
const targetRepo = process.env.TARGET_REPO;
const runId = Number(`${{ steps.dispatch.outputs.run_id }}`);
if (!runId) {
core.warning('No run_id available to cancel.');
return;
}
core.info(`Cancelling private workflow run ${runId} in ${targetOwner}/${targetRepo}...`);
await github.rest.actions.cancelWorkflowRun({
owner: targetOwner,
repo: targetRepo,
run_id: runId,
});
core.info('Cancellation requested.');
Loading