diff --git a/.gitea/workflows/windows-ci.yml b/.gitea/workflows/windows-ci.yml index b1923ef..54a010c 100644 --- a/.gitea/workflows/windows-ci.yml +++ b/.gitea/workflows/windows-ci.yml @@ -1,99 +1,28 @@ -name: Windows CI - -on: - push: - pull_request: - workflow_dispatch: - -permissions: - contents: read +name: Net Diag +on: push jobs: - verify: + diag: runs-on: windows-latest - timeout-minutes: 120 - env: - CI: 'true' + timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - timeout-minutes: 10 - - uses: actions/setup-node@v4 - timeout-minutes: 10 - with: - node-version: '24.11.1' - cache: npm - - name: Clean install - run: npm ci - timeout-minutes: 10 - - name: Provision Electron binary + - name: Probe tool sources run: | - npx install-electron --no - if ($LASTEXITCODE -ne 0) { - npx install-electron --no - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + whoami + "TEMP=$env:TEMP" + "HTTP_PROXY=$env:HTTP_PROXY HTTPS_PROXY=$env:HTTPS_PROXY NO_PROXY=$env:NO_PROXY" + try { [System.Net.Dns]::GetHostAddresses('www.gyan.dev') | ForEach-Object { "DNS gyan: $($_.IPAddressToString)" } } catch { "DNS gyan ERR: $($_.Exception.Message)" } + try { [System.Net.Dns]::GetHostAddresses('github.com') | ForEach-Object { "DNS github: $($_.IPAddressToString)" } } catch { "DNS github ERR: $($_.Exception.Message)" } + $ProgressPreference = 'SilentlyContinue' + try { $r = Invoke-WebRequest -Uri 'https://api.github.com/' -UseBasicParsing -TimeoutSec 20; "api.github: $($r.StatusCode)" } catch { "api.github ERR: $($_.Exception.Message)" } + try { $r = Invoke-WebRequest -Uri 'https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-8.1.2-essentials_build.zip' -Method Head -UseBasicParsing -TimeoutSec 30; "gyan HEAD: $($r.StatusCode) len=$($r.Headers['Content-Length'])" } catch { "gyan ERR: $($_.Exception.Message)" } + try { $r = Invoke-WebRequest -Uri 'https://github.com/streamlink/windows-builds/releases/download/8.4.0-1/streamlink-8.4.0-1-py314-x86_64.zip' -Method Head -UseBasicParsing -TimeoutSec 30; "github release HEAD: $($r.StatusCode) len=$($r.Headers['Content-Length'])" } catch { "github release ERR: $($_.Exception.Message)" } + $node = Get-Command node -ErrorAction SilentlyContinue + if ($node) { + "node: $($node.Source) $(node --version)" + node -e "const https=require('https');https.get('https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-8.1.2-essentials_build.zip',{timeout:20000},r=>{console.log('node gyan status',r.statusCode);r.destroy();}).on('error',e=>console.log('node gyan ERR',e.code||'',e.message)).on('timeout',function(){this.destroy();console.log('node gyan TIMEOUT')})" + Start-Sleep -Seconds 3 + } else { + 'node not on PATH' } - timeout-minutes: 10 - - name: Lint - run: npm run lint - timeout-minutes: 10 - - name: Lint configuration contract - run: npm run test:lint-config - timeout-minutes: 10 - - name: Security contracts - run: npm run security:check - timeout-minutes: 10 - - name: Security regression tests - run: npm run test:security - timeout-minutes: 10 - - name: CI contract - run: npm run test:ci-contract - timeout-minutes: 10 - - name: Installer contract - run: npm run test:installer-contract - timeout-minutes: 10 - - name: Managed tools contract - run: npm run test:managed-tools-contract - timeout-minutes: 10 - - name: Cutter matrix provisioning contract - run: npm run test:cutter-matrix-contract - timeout-minutes: 10 - - name: Build - run: npm run build - timeout-minutes: 10 - - name: Live integration contract - run: npm run test:live-integration-contract - timeout-minutes: 10 - - name: Unit tests - run: npm run test:unit - timeout-minutes: 10 - - name: Focused Electron smoke - run: npm run test:e2e:focused - timeout-minutes: 10 - - name: Cutter media matrix - run: node scripts/smoke-test-cutter-media-matrix.js - timeout-minutes: 10 - - name: Clean managed tools provision and repair - run: npm run test:managed-tools-live - timeout-minutes: 10 - - name: Package directory - run: | - npm run pack - if ($LASTEXITCODE -ne 0) { - npm run pack - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - } - timeout-minutes: 10 - - name: Packaged launch smoke - run: npm run test:packaged-launch - timeout-minutes: 10 - - name: Build installer - run: | - npm run dist:ci - if ($LASTEXITCODE -ne 0) { - npm run dist:ci - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - } - timeout-minutes: 10 - - name: Installer smoke - run: npm run test:installer - timeout-minutes: 10 + exit 0