Skip to content

Commit 530d221

Browse files
authored
Merge pull request #104 from LowlyDBA/development
Development
2 parents 79e5cc3 + 27018d0 commit 530d221

25 files changed

+3299
-152
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# linguist overrides
22
*.sql linguist-language=TSQL
3+
4+
# line endings for code coverage files
5+
appveyor/sqlcover/* text eol=lf

appveyor/appveyor.yml

Lines changed: 76 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -2,93 +2,93 @@ version: 0.9.{build}
22

33
pull_requests:
44
do_not_increment_build_number: false
5-
65
max_jobs: 1
76

8-
clone_folder: C:\sqlexpress\
9-
107
environment:
11-
access_token:
12-
secure: XQvkhXxMw7yJPQF4xQe/OV5+u0Dhx0bsaXIHE2PNvPJr15qw+oA9SNlKYnGo6UNQ
8+
access_token:
9+
secure: 'E5I+i+CQyj9EHusDrPSQKHRXmzmpTujYAoFxlvJjvSRSEQHHzqTBIFR1VuPbwLMi'
1310

14-
MSSQL_LOGIN: sa
15-
MSSQL_PASS: Password12!
16-
TSQLTSETCLR: tests\tSQLt\SetClrEnabled.sql
17-
TSQLTCREATEDB: tests\tSQLt\CreateDatabase.sql
18-
TSQLTINSTALL: tests\tSQLt\tSQLt.class.sql
19-
TSQLTBUILDPATH: tests\build
20-
TSQLTTESTPATH: tests\run
21-
COMBINED_FILE: install_expsql.sql
22-
TARGET_DB: tSQLt
11+
APPVEYOR_RDP_PASSWORD: Np^VNSzJI5#OmRdUNqro2T9UVkCdZ
12+
MSSQL_LOGIN: sa
13+
MSSQL_PASS: Password12!
14+
TSQLTSETCLR: tests\tSQLt\SetClrEnabled.sql
15+
TSQLTCREATEDB: tests\tSQLt\CreateDatabase.sql
16+
TSQLTINSTALL: tests\tSQLt\tSQLt.class.sql
17+
TSQLTBUILDPATH: tests\build
18+
TSQLTTESTPATH: tests\run
19+
TARGET_DB: tSQLt
20+
COV_REPORT: appveyor\sqlcover\Coverage.opencoverxml
21+
22+
matrix:
23+
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
24+
MSSQL: SQL2019
25+
DB_INSTANCE: (local)\SQL2019
26+
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_150
27+
LATEST: True
28+
29+
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
30+
MSSQL: SQL2017
31+
DB_INSTANCE: (local)\SQL2017
32+
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_140
33+
34+
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
35+
MSSQL: SQL2016
36+
DB_INSTANCE: (local)\SQL2016
37+
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_130
2338

24-
matrix:
25-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
26-
MSSQL: SQL2019
27-
DB_INSTANCE: (local)\SQL2019
28-
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_150
29-
30-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
31-
MSSQL: SQL2017
32-
DB_INSTANCE: (local)\SQL2017
33-
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_140
34-
35-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
36-
MSSQL: SQL2016
37-
DB_INSTANCE: (local)\SQL2016
38-
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_130
39-
40-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
41-
MSSQL: SQL2014
42-
DB_INSTANCE: (local)\SQL2014
43-
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_120
44-
45-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
46-
MSSQL: SQL2012SP1
47-
DB_INSTANCE: (local)\SQL2012SP1
48-
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_110
39+
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
40+
MSSQL: SQL2014
41+
DB_INSTANCE: (local)\SQL2014
42+
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_120
43+
44+
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
45+
MSSQL: SQL2012SP1
46+
DB_INSTANCE: (local)\SQL2012SP1
47+
LINT_CONFIG: appveyor\tsqllint\.tsqllintrc_110
48+
49+
clone_script:
50+
- git config --global credential.helper store
51+
- ps: Add-Content "$HOME\.git-credentials" "https://$($env:access_token):[email protected]`n" -NoNewLine
52+
- git config --global user.email "[email protected]"
53+
- git config --global user.name "Appveyor"
54+
- git config --global core.safecrlf false
55+
- git clone -q --single-branch --branch=%APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH% https://github.com/LowlyDBA/ExpressSQL.git %APPVEYOR_BUILD_FOLDER%
56+
- cd %APPVEYOR_BUILD_FOLDER%
4957

5058
install:
5159
- ps: Install-Module SqlServer -Force -AllowClobber
5260
- npm install
53-
54-
- echo Starting SQL Server
55-
- ps: >-
56-
$SQLInstance = $env:MSSQL;
57-
Start-Service "MSSQL`$$SQLInstance";
58-
59-
- echo Setting up tSQLt
60-
- cmd: >-
61-
SET SCRIPT=%CLONE_FOLDER%%TSQLTSETCLR%
62-
63-
sqlcmd -S %DB_INSTANCE% -U %MSSQL_LOGIN% -P %MSSQL_PASS% -i %SCRIPT% -d master -b > NUL
64-
65-
SET SCRIPT=%CLONE_FOLDER%%TSQLTCREATEDB%
66-
67-
sqlcmd -S %DB_INSTANCE% -U %MSSQL_LOGIN% -P %MSSQL_PASS% -i %SCRIPT% -d master -b > NUL
68-
69-
SET SCRIPT=%CLONE_FOLDER%%TSQLTINSTALL%
70-
71-
sqlcmd -S %DB_INSTANCE% -U %MSSQL_LOGIN% -P %MSSQL_PASS% -i %SCRIPT% -d %TARGET_DB% -b
61+
- ps: .\appveyor\start_sqlserver.ps1
62+
- ps: .\appveyor\install_tsqlt.ps1
7263

7364
build_script:
74-
- echo Installing ExpressSQL Scripts
75-
- ps: >-
76-
ForEach ($filename in Get-Childitem -Path $env:CLONE_FOLDER -Filter "*.sql") {
77-
Invoke-SqlCmd –ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS
78-
}
79-
80-
- echo Building tSQLt Tests
81-
- ps: >-
82-
ForEach ($filename in Get-Childitem -Path $env:TSQLTBUILDPATH -Filter "*.sql") {
83-
Invoke-SqlCmd –ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS
84-
}
65+
- ps: .\appveyor\make_combined_script.ps1
66+
- ps: .\appveyor\install_expsql.ps1
67+
- ps: .\appveyor\build_tsqlt_tests.ps1
68+
- echo Running TSQLLint tests
69+
- npx tsqllint -c %LINT_CONFIG% *.sql
8570

71+
# Non-covered test run
8672
test_script:
87-
- echo Running unit tests
88-
- ps: >-
89-
ForEach ($filename in Get-Childitem -Path $env:TSQLTTESTPATH -Filter "*.sql") {
90-
Invoke-SqlCmd –ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS -Verbose | Out-Null
91-
}
73+
- ps: .\appveyor\run_tsqlt_tests.ps1
9274

93-
- echo Running TSQLLint tests
94-
- npx tsqllint -c %LINT_CONFIG% *.sql
75+
# Only run code cov & push changes on latest build env
76+
for:
77+
-
78+
matrix:
79+
only:
80+
- LATEST: True
81+
82+
# Setup codecov, SQL Cover
83+
before_test:
84+
- ps: Install-Package GOEddie.SQLCover -Force | Out-Null
85+
- ps: choco install codecov --no-progress --limit-output | Out-Null
86+
87+
# Run tests with SQL Cover analysis
88+
test_script:
89+
- ps: .\appveyor\sqlcover\Run_SQLCover.ps1
90+
91+
# Upload code coverage report, push generated files
92+
on_success:
93+
- codecov -f %COV_REPORT%
94+
- ps: .\appveyor\push_git_changes.ps1

appveyor/build_tsqlt_tests.ps1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Write-Host "Building tSQLt Tests"
2+
3+
ForEach ($filename in Get-Childitem -Path $env:TSQLTBUILDPATH -Filter "*.sql") {
4+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS
5+
}

appveyor/install_expsql.ps1

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Write-Host "Installing ExpressSQL Scripts"
2+
3+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile "install_expsql.sql" -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS

appveyor/install_tsqlt.ps1

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Write-Host "Installing tSQLt"
2+
3+
$CLRScript = Join-Path $env:APPVEYOR_BUILD_FOLDER $env:TSQLTSETCLR
4+
$CreateDBScript = Join-Path $env:APPVEYOR_BUILD_FOLDER $env:TSQLTCREATEDB
5+
$tSQLtInstallScript = Join-Path $env:APPVEYOR_BUILD_FOLDER $env:TSQLTINSTALL
6+
7+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database "master" -InputFile $clrscript -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS | Out-Null
8+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database "master" -InputFile $CreateDBScript -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS | Out-Null
9+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $tSQLtInstallScript -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS

appveyor/make_combined_script.ps1

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
$File = "install_expsql.sql"
22

3-
Set-Location ../
4-
Get-Item *.sql | Get-Content | Out-File $File
3+
if (Test-Path $File) {
4+
Remove-Item $File
5+
}
6+
7+
Get-Item sp_*.sql | Get-Content | Out-File $File

appveyor/push_git_changes.ps1

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Stage files
2+
git add .
3+
4+
# Check if any files were actually staged
5+
$StagedFiles = git diff --staged
6+
7+
# Commit & push if stated
8+
If ($StagedFiles) {
9+
git commit -a -m "CI produced files" -q
10+
git push origin $env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH -f -q
11+
}

appveyor/run_tsqlt_tests.ps1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Write-Host "Run tSQLt Tests"
2+
3+
ForEach ($filename in Get-Childitem -Path $env:TSQLTTESTPATH -Filter "*.sql") {
4+
Invoke-SqlCmd -ServerInstance $env:DB_INSTANCE -Database $env:TARGET_DB -InputFile $filename.fullname -Username $env:MSSQL_LOGIN -Password $env:MSSQL_PASS -Verbose | Out-Null
5+
}

0 commit comments

Comments
 (0)