450
&& needs.file-check.outputs.run == 'true'
451
}}
452
453
+ windows-test: # Test the Windows installer
454
+ name: Test Windows installer
455
+ runs-on: windows-latest
456
+ needs:
457
+ - windows-build
458
+ - file-check
459
+ steps:
460
+ - name: Skip Check
461
+ id: skip
462
+ if: needs.file-check.outputs.run != 'true'
463
+ run: Write-Output "SKIPPED"
464
+ - name: Checkout
465
+ uses: actions/checkout@v6
466
+ id: checkout
467
+ if: needs.file-check.outputs.run == 'true'
468
+ with:
469
+ submodules: false
470
+ lfs: false
471
+ - name: Retrieve Windows Artifacts
472
+ id: fetch-windows
473
+ if: needs.file-check.outputs.run == 'true'
474
+ uses: Wandalen/wretry.action@v3
475
+ with:
476
+ action: actions/download-artifact@v4
477
+ with: |
478
+ pattern: windows-*-installer
479
+ path: dist-artifacts
480
+ merge-multiple: true
481
+ attempt_limit: 3
482
+ attempt_delay: 2000
483
+ - name: Install Netdata
484
+ id: install-netdata
485
+ if: needs.file-check.outputs.run == 'true'
486
+ run: |
487
+ $installerProc = Start-Process "msiexec" "/qn /i `"$PWD\dist-artifacts\netdata-x64.msi`" /l* `"$PWD\msi.log`" NDDRVINST=0" -Wait -NoNewWindow -PassThru
488
+ Write-Output "Exit Code: $installerProc.ExitCode"
489
+ Get-Content "$PWD\msi.log"
490
+ $successCodes = @(0, 3010)
491
+ if ($installerProc.ExitCode -notin $successCodes) {
492
+ exit 1
493
+ }
494
+ - name: Check agent linking
495
+ id: linker-check
496
+ if: needs.file-check.outputs.run == 'true'
497
+ run: ./.github/scripts/windows-linker-check.ps1
498
+ - name: Failure Notification
499
+ uses: rtCamp/action-slack-notify@v2
500
+ env:
501
+ SLACK_COLOR: 'danger'
502
+ SLACK_FOOTER: ''
503
+ SLACK_ICON_EMOJI: ':github-actions:'
504
+ SLACK_TITLE: 'Windows install test failed:'
505
+ SLACK_USERNAME: 'GitHub Actions'
506
+ SLACK_MESSAGE: |-
507
+ ${{ github.repository }}: Windows install test failed.
508
+ Checkout agent sources: ${{ steps.checkout.outcome }}
509
+ Fetch Windows installers: ${{ steps.fetch-windows.outcome }}
510
+ Install Netdata: ${{ steps.install-netdata.outcome }}
511
+ Check agent linking: ${{ steps.linker-check.outcome }}
512
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
513
+ if: >-
514
+ ${{
515
+ failure()
516
+ && startsWith(github.ref, 'refs/heads/master')
517
+ && github.event_name != 'pull_request'
518
+ && github.repository == 'netdata/netdata'
519
+ && needs.file-check.outputs.run == 'true'
520
+ }}
521
+
522
prepare-upload: # Consolidate the artifacts for uploading or releasing.
523
name: Prepare Artifacts
524
runs-on: ubuntu-latest
823
if: github.event_name == 'workflow_dispatch' && github.event.inputs.type == 'nightly' && github.repository == 'netdata/netdata'
824
needs:
825
- prepare-upload
826
+ - windows-test
827
- artifact-verification-dist
828
- artifact-verification-static
829
steps:
959
needs:
960
- artifact-verification-dist
961
- artifact-verification-static
962
+ - windows-test
963
- normalize-tag
964
steps:
965
- name: Checkout