Update README.md #728
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: DBA Dash CI | |
on: | |
push: | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Build | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
language: [csharp] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
dotnet-quality: 'ga' | |
- name: Check SDK version | |
run: dotnet --list-sdks | |
- name: Build | |
run: dotnet build -c CLI | |
- name: Build GUI | |
run: dotnet build DBADashGUI -o DBADashBuild\DBADashGUIOnly | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Build DB | |
run: msbuild dbadashdb -property:Configuration=CLI | |
- name: Test | |
run: dotnet test DBADash.Test/DBADash.Test.csproj --verbosity normal | |
- name: Get Version | |
id: GetVersion | |
shell: powershell | |
run: | | |
$path = [System.IO.Path]::Combine((Get-Location),"DBADashBuild\CLI\DBADash.dll") | |
$version = [System.Reflection.Assembly]::LoadFrom($path).GetName().Version | |
$version.ToString(3) | |
Write-Output "BUILD_NUMBER=$($version.ToString(3))" >> $env:GITHUB_OUTPUT | |
- name: Get Build Reference | |
id: GetBuildReference | |
shell: powershell | |
run: | | |
Invoke-WebRequest -Uri 'https://dataplat.github.io/assets/dbatools-buildref-index.json' -OutFile 'DBADashBuild\CLI\BuildReference.json' | |
- name: Zip | |
shell: powershell | |
run: | | |
$zipPath = "DBADash_${{steps.GetVersion.outputs.BUILD_NUMBER}}.zip" | |
Compress-Archive -Path "DBADashBuild\CLI\*" -DestinationPath $zipPath | |
$guiZipPath = "DBADash_GUI_Only_${{steps.GetVersion.outputs.BUILD_NUMBER}}.zip" | |
Compress-Archive -Path "DBADashBuild\DBADashGUIOnly\*" -DestinationPath $guiZipPath | |
- name: Install SQL | |
uses: potatoqualitee/mssqlsuite@v1.7 | |
with: | |
install: sqlengine | |
collation: Latin1_General_BIN | |
- name: Check SQL Install | |
run: | | |
sqlcmd -S localhost -U sa -P dbatools.I0 -d tempdb -Q "SELECT @@version as Version;" | |
sqlcmd -S localhost -U sa -P dbatools.I0 -d tempdb -Q "SELECT SERVERPROPERTY('Collation') AS Collation;" | |
- name: Create Identity Test DB | |
run: | | |
sqlcmd -S localhost -U sa -P dbatools.I0 -d tempdb -Q "CREATE DATABASE TestIdentity" | |
sqlcmd -S localhost -U sa -P dbatools.I0 -d TestIdentity -Q "CREATE TABLE dbo.IdentityTest(ID TINYINT IDENTITY(1,1));DECLARE @i INT=1; WHILE @i <250 BEGIN INSERT INTO dbo.IdentityTest DEFAULT VALUES; SET @i+=1; END" | |
- name: Configure & Install DBA Dash as Service | |
shell: powershell | |
run: | | |
$ErrorActionPreference = "Stop" | |
$zipPath = "DBADash_${{steps.GetVersion.outputs.BUILD_NUMBER}}.zip" | |
$InstallPath = "C:\DBADashTest" | |
"Extract to $InstallPath" | |
Expand-Archive -Path $zipPath -DestinationPath $InstallPath -Force -ErrorAction Stop | |
Set-Location $InstallPath | |
"Configure" | |
./dbadashconfig -c "Data Source=localhost;UID=sa;pwd=dbatools.I0;Initial Catalog=DBADashDB_GitHubAction;Encrypt=True;TrustServerCertificate=True;" -a SetDestination | |
./dbadashconfig -c "Data Source=localhost;UID=sa;pwd=dbatools.I0;Encrypt=True;TrustServerCertificate=True;" -a Add --PlanCollectionEnabled --SlowQueryThresholdMs 1000 --SchemaSnapshotDBs "*" | |
"Install Service" | |
./DBADashService install --localsystem | |
"Start Service" | |
net start DBADashService | |
"Wait 60 sec" | |
Start-Sleep -s 60 | |
"Get Logs" | |
$logsFolder = "$InstallPath\Logs" | |
Get-ChildItem -Path $logsFolder | Get-Content | |
exit 0 | |
- name: Wait 5min | |
shell: powershell | |
run: | | |
"Wait 5min" | |
Start-Sleep -s 300 | |
- name: Output CollectionErrorLog | |
shell: powershell | |
run: | | |
Invoke-Sqlcmd -ServerInstance $params.ServerInstance -Database "DBADashDB_GitHubAction" -Query "SELECT * FROM dbo.CollectionErrorLog" -TrustServerCertificate | Format-Table | |
- name: Output Table Counts | |
shell: powershell | |
run: | | |
./Scripts/Get-TableCounts -ServerInstance "LOCALHOST" -Database "DBADashDB_GitHubAction" | |
- name: Run Pester Tests | |
shell: powershell | |
run: | | |
Install-Module Pester -Force -SkipPublisherCheck | |
Import-Module Pester -PassThru | |
Invoke-Pester -Output Detailed Scripts\CI_Workflow.Tests.ps1 | |
- name: Output Table Counts Following Delete | |
shell: powershell | |
run: | | |
./Scripts/Get-TableCounts -ServerInstance "LOCALHOST" -Database "DBADashDB_GitHubAction" | |
- name: Output Log and Check for Errors | |
shell: powershell | |
run: | | |
./Scripts/Get-LogContent -LogPath "C:\DBADashTest\Logs" -ThrowError |