From 9a4d156767745138c11127684bd04873a79f3135 Mon Sep 17 00:00:00 2001 From: Lucas Gelfond Date: Mon, 23 Dec 2024 20:33:28 -0800 Subject: [PATCH] bring the run back in. --- .github/workflows/CI.yml | 90 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 835bd1d..230c3ef 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -91,11 +91,95 @@ jobs: key: node-modules-${{ hashFiles('package-lock.json') }} restore-keys: | node-modules- - - name: Install dependencies - run: npm install - name: Run tests env: CHROME_HEADLESS: 1 CHROME_PATH: chrome CHROME_FLAGS: "--headless --disable-gpu --no-sandbox --enable-features=SharedArrayBuffer,CrossOriginIsolation" - run: npm test + HEADERS: '{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp","Cross-Origin-Resource-Policy":"cross-origin","Origin-Agent-Cluster":"?1"}' + run: | + # Start test server with proper headers + npm run serve -- --headers "${HEADERS}" & + + # Increase wait time to ensure server is ready + sleep 15 + + # Verify headers and isolation status + echo "Checking security headers and isolation status..." + curl -I http://localhost:3000/tests/ffmpeg-core-st.test.html + + # Run verification script first + echo "Verifying browser environment..." + cat << EOF > verify-browser.html + + + + + + + + + + + EOF + + # Run single-threaded tests first + echo "Running single-threaded tests..." + npx mocha-headless-chrome \ + --args="$CHROME_FLAGS" \ + -a no-sandbox \ + -f http://localhost:3000/tests/ffmpeg-core-st.test.html 2>&1 | tee st-core-test.log + + npx mocha-headless-chrome \ + --args="$CHROME_FLAGS" \ + -a no-sandbox \ + -f http://localhost:3000/tests/ffmpeg-st.test.html 2>&1 | tee st-test.log + + # Run multi-threaded tests + echo "Running multi-threaded tests..." + # Create a test script to verify browser environment + cat << EOF > verify-browser.html + + + + Browser Environment Test + + + + + + EOF + + # Run the verification in Chrome + echo "Verifying browser environment..." + npx mocha-headless-chrome \ + --args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \ + -a no-sandbox \ + -f http://localhost:3000/verify-browser.html + + # Run MT tests with verified configuration + npx mocha-headless-chrome \ + --args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \ + -a no-sandbox \ + -f http://localhost:3000/tests/ffmpeg-core-mt.test.html 2>&1 | tee mt-core-test.log + + npx mocha-headless-chrome \ + --args="$CHROME_FLAGS --enable-features=SharedArrayBuffer,CrossOriginIsolation" \ + -a no-sandbox \ + -f http://localhost:3000/tests/ffmpeg-mt.test.html 2>&1 | tee mt-test.log + + # Display all logs for debugging + echo "=== Test Logs ===" + for log in *-test.log; do + echo "Contents of $log:" + cat $log + done