Skip to content

Building and distributing 64-bit version of InstallerLib, InstallerEditor, and InstallerLinker for reference by 64-bit processes #91

Building and distributing 64-bit version of InstallerLib, InstallerEditor, and InstallerLinker for reference by 64-bit processes

Building and distributing 64-bit version of InstallerLib, InstallerEditor, and InstallerLinker for reference by 64-bit processes #91

Workflow file for this run

name: Build
on:
push:
branches-ignore:
- 'gh-pages'
pull_request:
branches-ignore:
- 'gh-pages'
env:
# set RestoreUseSkipNonexistentTargets=false so running "nuget.exe restore dni.sln" returns a successful exit code (0).
# Otherwise, the following errors occur:
# .\Samples\PackagedSetup\Simple\Simple.vdproj(1,1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 1, position 1. [dni.proj]
# EXEC : warning : Error reading msbuild project information, ensure that your input solution or project file is valid. NETCore and UAP projects will be skipped, only packages.config files will be restored. [dni.proj]
# dni.proj(130,5): error MSB3073: The command "ThirdParty\NuGet\NuGet.exe restore Dni.sln" exited with code -1.
RestoreUseSkipNonexistentTargets: false
jobs:
build:
runs-on: windows-2019
strategy:
matrix:
Configuration: [Debug, Release]
steps:
#- name: Disable Windows Defender Real-time Monitoring
# run: Set-MpPreference -DisableRealtimeMonitoring $true
# shell: powershell
#- name: Disable Windows Defender Smart Screen
# run: Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'EnableSmartScreen' -Type DWord -Value 0
# shell: powershell
- uses: actions/checkout@v2
#- name: Enable remote connection
# shell: powershell
# run: .\build\TeamViewer\EnableRemoteConnection.ps1
- name: Add MSBuild to PATH
uses: microsoft/[email protected]
- name: Download Win8.1 SDK
shell: powershell
run: |
md C:\win81sdk
Invoke-WebRequest -Method Get -Uri https://go.microsoft.com/fwlink/p/?LinkId=323507 -OutFile C:\win81sdk\sdksetup.exe -UseBasicParsing
- name: Install Win8.1 SDK
shell: powershell
run: |
Start-Process -Wait C:\win81sdk\sdksetup.exe -ArgumentList "/q", "/norestart", "/features", "OptionId.WindowsDesktopSoftwareDevelopmentKit", "OptionId.NetFxSoftwareDevelopmentKit"
- name: Install Microsoft Visual C++ 2010 Runtime 10.0.40219
# This is required for the test method 'testGetRelatedInstalledProducts' in 'dotNetInstallerToolsLibUnitTests\MsiUtilUnitTests.cpp' to succeed.
# The windows-2016 virtual environment has an older version, Microsoft Visual C++ 2010 Runtime 10.0.30319.
run: choco install vcredist2010 --version=10.0.40219.32503
- name: Install .NET 6 SDK
run: |
Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1
.\dotnet-install.ps1 -Version 6.0.413 -Architecture "x64" -InstallDir "C:\Program Files\dotnet" -NoPath -Verbose
- name: dotnet version and info
shell: cmd
run: |
"C:\Program Files\dotnet\dotnet.exe" --version
"C:\Program Files\dotnet\dotnet.exe" --info
- name: Configure Windows Error Reporting
shell: cmd
run: |
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_EXPAND_SZ /v DumpFolder /d "${{ github.workspace }}\CrashDumps" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpCount /d 10 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpType /d 2 /f
reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_EXPAND_SZ /v DumpFolder /d "${{ github.workspace }}\CrashDumps" /f
reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpCount /d 10 /f
reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpType /d 2 /f
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: msbuild /t:all /m /p:Configuration=${{ matrix.Configuration }} .\dni.proj
- name: Dump environment variables
if: always()
shell: cmd
run: set
- name: Publish Failed Test Results Report
if: github.event_name != 'pull_request'
uses: dorny/test-reporter@v1
with:
name: Tests
path: TestResults/*.trx
reporter: dotnet-trx
list-suites: 'failed'
list-tests: 'failed'
max-annotations: 50
- name: Export Windows Event Logs
if: failure()
shell: cmd
run: |
wevtutil epl Application Application.evtx
wevtutil epl Security Security.evtx
wevtutil epl System System.evtx
- name: Upload Test Result Files
if: always()
uses: actions/[email protected]
with:
name: TestResults-${{ matrix.Configuration }}
path: |
.\**\TestResults\**\*
.\InstallerEditor\**\*.png
.\*.evtx
.\CrashDumps\**\*
# Upload the temp files separately.
# Otherwise the following error occurs:
# The rootDirectory: "D:\a\dotnetinstaller\dotnetinstaller" is not a parent directory of the file: "C:\Users\runneradmin\AppData\Local\Temp\33fcd148-d0c7-46cd-8333-9b21a22d2d2c.xml"
- name: Upload Temp File
if: failure()
uses: actions/[email protected]
with:
name: TempLogs-${{ matrix.Configuration }}
path: |
C:\Users\runneradmin\AppData\Local\Temp\*.exe
C:\Users\runneradmin\AppData\Local\Temp\*.log
C:\Users\runneradmin\AppData\Local\Temp\*.txt
C:\Users\runneradmin\AppData\Local\Temp\*.xml
- name: List files
if: failure()
shell: cmd
run: dir /S ${{ github.workspace }}
- name: List temp files
if: failure()
shell: cmd
run: dir /S C:\Users\runneradmin\AppData\Local\Temp
- name: Upload Build Artifacts
uses: actions/[email protected]
with:
name: ${{ matrix.Configuration }}
path: |
.\target\${{ matrix.Configuration }}\dotNetInstaller.*.zip
.\target\${{ matrix.Configuration }}\dotNetInstaller.*.msi
if-no-files-found: error
#- name: 'Wait for remote connection'
# if: failure()
# shell: powershell
# run: .\build\TeamViewer\WaitForRemoteConnection.ps1