Building and distributing 64-bit version of InstallerLib, InstallerEditor, and InstallerLinker for reference by 64-bit processes #86
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 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 |