Skip to content

Docker

Docker #22

Triggered via schedule May 24, 2026 21:27
Status Failure
Total duration 2m 11s
Artifacts

docker-publish.yml

on: schedule
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

6 errors and 1 notice
e2e
Process completed with exit code 1.
[chromium] › tests/e2e/modes.spec.js:8:3 › Runtime mode smoke coverage › standalone exposes UI and local backend endpoints: tests/e2e/modes.spec.js#L14
5) [chromium] › tests/e2e/modes.spec.js:8:3 › Runtime mode smoke coverage › standalone exposes UI and local backend endpoints Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "design-switch.js" Received string: "<!DOCTYPE html> <html lang=\"en\"> <head> <link rel=\"shortcut icon\" href=\"favicon.ico\"> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> <meta charset=\"UTF-8\"> <script src=\"speedtest.js\"></script> <script> const SPEEDTEST_SERVERS=[ /*{ //this server doesn't actually exist, remove it name:\"Example Server 1\", //user friendly name for the server server:\"//test1.mydomain.com/\", //URL to the server. // at the beginning will be replaced with http:// or https:// automatically dlURL:\"backend/garbage.php\", //path to download test on this server (garbage.php or replacement) ulURL:\"backend/empty.php\", //path to upload test on this server (empty.php or replacement) pingURL:\"backend/empty.php\", //path to ping/jitter test on this server (empty.php or replacement) getIpURL:\"backend/getIP.php\" //path to getIP on this server (getIP.php or replacement) }, { //this server doesn't actually exist, remove it name:\"Example Server 2\", //user friendly name for the server server:\"//test2.example.com/\", //URL to the server. // at the beginning will be replaced with http:// or https:// automatically dlURL:\"garbage.php\", //path to download test on this server (garbage.php or replacement) ulURL:\"empty.php\", //path to upload test on this server (empty.php or replacement) pingURL:\"empty.php\", //path to ping/jitter test on this server (empty.php or replacement) getIpURL:\"getIP.php\" //path to getIP on this server (getIP.php or replacement) }*/ //add other servers here, comma separated ];· //INITIALIZE SPEEDTEST let s=new Speedtest();· //SERVER AUTO SELECTION function initServers(){ const runServerSelect=function(){ s.selectServer(function(server){ if(server!=null){ //at least 1 server is available I(\"loading\").className=\"hidden\"; //hide loading message //populate server list for manual selection for(let i=0;i<SPEEDTEST_SERVERS.length;i++){ if(SPEEDTEST_SERVERS[i].pingT==-1) continue; let option=document.createElement(\"option\"); option.value=i; option.textContent=SPEEDTEST_SERVERS[i].name; if(SPEEDTEST_SERVERS[i]===server) option.selected=true; I(\"server\").appendChild(option); } //show test UI I(\"testWrapper\").className=\"visible\"; initUI(); }else{ //no servers are available, the test cannot proceed I(\"message\").innerHTML=\"No servers available\"; } }); }·· //hardcoded server list s.addTestPoints(SPEEDTEST_SERVERS); runServerSelect(); }· //UI CODE let uiData=null; s.onupdate=function(data){ //callback to update data in UI I(\"ip\").textContent=data.clientIp; I(\"dlText\").textContent=(data.testState==1&&data.dlStatus==0)?\"...\":data.dlStatus; I(\"ulText\").textContent=(data.testState==3&&data.ulStatus==0)?\"...\":data.ulStatus; I(\"pingText\").textContent=data.pingStatus; I(\"jitText\").textContent=data.jitterStatus; uiData=data; }· s.onend=function(aborted){ //callback for test ended/aborted I(\"startStopBtn\").className=\"\"; //show start button again I(\"server\").disabled=false; if(!aborted){//if testId is present, show sharing panel, otherwise do nothing try{ const testId=uiData.testId; if(testId!=null){ const shareURL=window
[chromium] › tests/e2e/design-switch.spec.js:24:3 › Design switch behavior › query override design=old forces classic: tests/e2e/design-switch.spec.js#L26
4) [chromium] › tests/e2e/design-switch.spec.js:24:3 › Design switch behavior › query override design=old forces classic Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(page).toHaveURL(expected) failed Expected pattern: /index-classic\.html\?design=old/ Received string: "http://127.0.0.1:18185/index.html?design=old" Timeout: 7500ms Call log: - Expect "toHaveURL" with timeout 7500ms 19 × unexpected value "http://127.0.0.1:18185/index.html?design=old" 24 | test('query override design=old forces classic', async ({ page }) => { 25 | await page.goto(`${baseUrls.standaloneNew}/index.html?design=old`); > 26 | await expect(page).toHaveURL(/index-classic\.html\?design=old/); | ^ 27 | await expect(classicStartButton(page)).toBeVisible(); 28 | }); 29 | }); at /home/runner/work/speedtest/speedtest/tests/e2e/design-switch.spec.js:26:24
[chromium] › tests/e2e/design-switch.spec.js:18:3 › Design switch behavior › query override design=new forces modern: tests/e2e/design-switch.spec.js#L20
3) [chromium] › tests/e2e/design-switch.spec.js:18:3 › Design switch behavior › query override design=new forces modern Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(page).toHaveURL(expected) failed Expected pattern: /index-modern\.html\?design=new/ Received string: "http://127.0.0.1:18180/index.html?design=new" Timeout: 7500ms Call log: - Expect "toHaveURL" with timeout 7500ms 19 × unexpected value "http://127.0.0.1:18180/index.html?design=new" 18 | test('query override design=new forces modern', async ({ page }) => { 19 | await page.goto(`${baseUrls.standalone}/index.html?design=new`); > 20 | await expect(page).toHaveURL(/index-modern\.html\?design=new/); | ^ 21 | await expect(modernStartButton(page)).toBeVisible(); 22 | }); 23 | at /home/runner/work/speedtest/speedtest/tests/e2e/design-switch.spec.js:20:24
[chromium] › tests/e2e/design-switch.spec.js:12:3 › Design switch behavior › index.html defaults to modern when useNewDesign=true: tests/e2e/design-switch.spec.js#L14
2) [chromium] › tests/e2e/design-switch.spec.js:12:3 › Design switch behavior › index.html defaults to modern when useNewDesign=true Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(page).toHaveURL(expected) failed Expected pattern: /index-modern\.html/ Received string: "http://127.0.0.1:18185/index.html" Timeout: 7500ms Call log: - Expect "toHaveURL" with timeout 7500ms 19 × unexpected value "http://127.0.0.1:18185/index.html" 12 | test('index.html defaults to modern when useNewDesign=true', async ({ page }) => { 13 | await page.goto(`${baseUrls.standaloneNew}/index.html`); > 14 | await expect(page).toHaveURL(/index-modern\.html/); | ^ 15 | await expect(modernStartButton(page)).toBeVisible(); 16 | }); 17 | at /home/runner/work/speedtest/speedtest/tests/e2e/design-switch.spec.js:14:24
[chromium] › tests/e2e/design-switch.spec.js:6:3 › Design switch behavior › index.html defaults to classic when useNewDesign=false: tests/e2e/design-switch.spec.js#L8
1) [chromium] › tests/e2e/design-switch.spec.js:6:3 › Design switch behavior › index.html defaults to classic when useNewDesign=false Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(page).toHaveURL(expected) failed Expected pattern: /index-classic\.html/ Received string: "http://127.0.0.1:18180/index.html" Timeout: 7500ms Call log: - Expect "toHaveURL" with timeout 7500ms 19 × unexpected value "http://127.0.0.1:18180/index.html" 6 | test('index.html defaults to classic when useNewDesign=false', async ({ page }) => { 7 | await page.goto(`${baseUrls.standalone}/index.html`); > 8 | await expect(page).toHaveURL(/index-classic\.html/); | ^ 9 | await expect(classicStartButton(page)).toBeVisible(); 10 | }); 11 | at /home/runner/work/speedtest/speedtest/tests/e2e/design-switch.spec.js:8:24
🎭 Playwright Run Summary
5 failed [chromium] › tests/e2e/design-switch.spec.js:6:3 › Design switch behavior › index.html defaults to classic when useNewDesign=false [chromium] › tests/e2e/design-switch.spec.js:12:3 › Design switch behavior › index.html defaults to modern when useNewDesign=true [chromium] › tests/e2e/design-switch.spec.js:18:3 › Design switch behavior › query override design=new forces modern [chromium] › tests/e2e/design-switch.spec.js:24:3 › Design switch behavior › query override design=old forces classic [chromium] › tests/e2e/modes.spec.js:8:3 › Runtime mode smoke coverage › standalone exposes UI and local backend endpoints 7 passed (1.5m)