Skip to content

Bump version

Bump version #747

Workflow file for this run

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