Skip to content

Commit 3d11a8b

Browse files
committed
workflows extracted everything to env. variables
For easier updates and to minimize replace points/locations.
1 parent 97a836b commit 3d11a8b

File tree

8 files changed

+186
-134
lines changed

8 files changed

+186
-134
lines changed

.github/workflows/clang-cl-qt6.yml

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ jobs:
2929
env:
3030
TINY_QT_VERSION: 6.7.1
3131
TINY_QT_SPEC: msvc2019_64
32+
TINY_LLVM_VERSION: 18.1.7
33+
# Initial build size 1.4G :/
34+
TINY_CCACHE_MAX_SIZE: 2G
35+
TINY_MYSQL_SERVICE: MySQL
36+
TINY_POSTGRES_SERVICE: postgresql-x64-14
3237

3338
steps:
3439
- uses: actions/checkout@v4
@@ -47,6 +52,8 @@ jobs:
4752
4853
$mysqlDataPath = Join-Path -Path $runnerWorkPath -ChildPath 'mysql/data'
4954
"TinyMySQLDataPath=$mysqlDataPath" >> $env:GITHUB_ENV
55+
56+
"TinyParallel=$env:NUMBER_OF_PROCESSORS" >> $env:GITHUB_ENV
5057
env:
5158
DB_SQLITE_DATABASE: ${{ secrets.DB_SQLITE_DATABASE }}
5259

@@ -173,8 +180,8 @@ jobs:
173180
174181
- name: PostgreSQL service start
175182
run: |
176-
Set-Service -Name postgresql-x64-14 -StartupType Manual
177-
Start-Service postgresql-x64-14
183+
Set-Service -Name $env:TINY_POSTGRES_SERVICE -StartupType Manual
184+
Start-Service $env:TINY_POSTGRES_SERVICE
178185
179186
- name: PostgreSQL change ${{ secrets.DB_PGSQL_ROOT_USERNAME }} password
180187
run: >-
@@ -227,20 +234,18 @@ jobs:
227234

228235
- name: PostgreSQL service restart
229236
run: |
230-
Restart-Service postgresql-x64-14
237+
Restart-Service $env:TINY_POSTGRES_SERVICE
231238
232239
- name: PostgreSQL service check status
233240
run: |
234-
$serviceName = 'postgresql-x64-14'
235-
236241
Write-Output '::group::Get-Service'
237-
$pgsqlService = Get-Service $serviceName
242+
$pgsqlService = Get-Service $env:TINY_POSTGRES_SERVICE
238243
Write-Output $pgsqlService
239244
Write-Output '::endgroup::'
240245
241246
Write-Output '::group::Service running check'
242247
$pgsqlService.status.ToString() -ceq 'Running' -or `
243-
$(throw "$serviceName service is not running") > $null
248+
$(throw "$env:TINY_POSTGRES_SERVICE service is not running") > $null
244249
Write-Output '::endgroup::'
245250
246251
Write-Output '::group::pg_isready'
@@ -395,8 +400,8 @@ jobs:
395400
396401
- name: MySQL service install/start
397402
run: |
398-
mysqld.exe --install MySQL
399-
Start-Service MySQL
403+
mysqld.exe --install $env:TINY_MYSQL_SERVICE
404+
Start-Service $env:TINY_MYSQL_SERVICE
400405
401406
# Securing the root account even on localhost is for testing to make sure that everything
402407
# works as expected
@@ -470,24 +475,22 @@ jobs:
470475
"source $filepath" |
471476
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --password=$env:DB_MYSQL_ROOT_PASSWORD mysql
472477
473-
Restart-Service MySQL
478+
Restart-Service $env:TINY_MYSQL_SERVICE
474479
env:
475480
extracted_folder: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.ExtractedFolder }}
476481
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
477482
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
478483

479484
- name: MySQL service check status
480485
run: |
481-
$serviceName = 'MySQL'
482-
483486
Write-Output '::group::Get-Service'
484-
$mysqlService = Get-Service $serviceName
487+
$mysqlService = Get-Service $env:TINY_MYSQL_SERVICE
485488
Write-Output $mysqlService
486489
Write-Output '::endgroup::'
487490
488491
Write-Output '::group::Service running check'
489492
$mysqlService.status.ToString() -ceq 'Running' -or `
490-
$(throw "$serviceName service is not running") > $null
493+
$(throw "$env:TINY_MYSQL_SERVICE service is not running") > $null
491494
Write-Output '::endgroup::'
492495
493496
Write-Output '::group::Ping'
@@ -614,10 +617,10 @@ jobs:
614617
C:/Program Files/LLVM
615618
key: llvm-18.1.7
616619

617-
- name: Install LLVM and Clang 18.1.7
620+
- name: Install LLVM and Clang ${{ env.TINY_LLVM_VERSION }}
618621
uses: KyleMayes/install-llvm-action@v1
619622
with:
620-
version: 18.1.7
623+
version: ${{ env.TINY_LLVM_VERSION }}
621624
force-version: true
622625
cached: ${{ steps.llvm-cache.outputs.cache-hit }}
623626

@@ -649,8 +652,7 @@ jobs:
649652

650653
- name: Ccache prepare configuration 🥳
651654
run: |
652-
# Initial build size 1.4G :/
653-
ccache.exe --set-config max_size=2G
655+
ccache.exe --set-config max_size=$env:TINY_CCACHE_MAX_SIZE
654656
ccache.exe --set-config sloppiness=pch_defines,time_macros
655657
ccache.exe --set-config depend_mode=true
656658
ccache.exe --set-config inode_cache=true
@@ -713,7 +715,7 @@ jobs:
713715
- name: TinyORM cmake build ✨ (clang-cl-cmake-debug)
714716
run: >-
715717
cmake.exe --build ../TinyORM-builds-cmake/build-clang-cl-cmake-debug --target all
716-
--parallel 2
718+
--parallel $env:TinyParallel
717719
718720
- name: Ccache print statistics
719721
run: |
@@ -748,10 +750,12 @@ jobs:
748750
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }}
749751
TOM_TESTDATA_ENV: ${{ vars.TOM_TESTDATA_ENV }}
750752

753+
# $env:NUMBER_OF_PROCESSORS / 2 : rounds down
751754
- name: TinyORM execute ctest 🔥
752755
working-directory: ../TinyORM-builds-cmake/build-clang-cl-cmake-debug
753-
run: |
754-
ctest.exe --output-on-failure --parallel 4
756+
run: >-
757+
ctest.exe --output-on-failure
758+
--parallel ([int] $env:TinyParallel + $env:NUMBER_OF_PROCESSORS / 2)
755759
env:
756760
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
757761
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_COLLATION }}

.github/workflows/msvc2019-qt5.yml

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ jobs:
1818

1919
runs-on: windows-2019
2020

21+
env:
22+
TINY_QT_VERSION: 5.15.2
23+
TINY_QT_SPEC: win64_msvc2019_64
24+
# First value is a compressed data size
25+
# ~ 175 * 3 + 100
26+
TINY_CCACHE_MAX_SIZE: 650M
27+
TINY_MYSQL_SERVICE: MySQL
28+
TINY_POSTGRES_SERVICE: postgresql-x64-14
29+
2130
steps:
2231
- uses: actions/checkout@v4
2332

@@ -35,6 +44,8 @@ jobs:
3544
3645
$mysqlDataPath = Join-Path -Path $runnerWorkPath -ChildPath 'mysql/data'
3746
"TinyMySQLDataPath=$mysqlDataPath" >> $env:GITHUB_ENV
47+
48+
"TinyParallel=$env:NUMBER_OF_PROCESSORS" >> $env:GITHUB_ENV
3849
env:
3950
DB_SQLITE_DATABASE: ${{ secrets.DB_SQLITE_DATABASE }}
4051

@@ -44,21 +55,19 @@ jobs:
4455
4556
- name: PostgreSQL service start
4657
run: |
47-
Set-Service -Name postgresql-x64-14 -StartupType Manual
48-
Start-Service postgresql-x64-14
58+
Set-Service -Name $env:TINY_POSTGRES_SERVICE -StartupType Manual
59+
Start-Service $env:TINY_POSTGRES_SERVICE
4960
5061
- name: PostgreSQL service check status
5162
run: |
52-
$serviceName = 'postgresql-x64-14'
53-
5463
Write-Output '::group::Get-Service'
55-
$pgsqlService = Get-Service $serviceName
64+
$pgsqlService = Get-Service $env:TINY_POSTGRES_SERVICE
5665
Write-Output $pgsqlService
5766
Write-Output '::endgroup::'
5867
5968
Write-Output '::group::Service running check'
6069
$pgsqlService.status.ToString() -ceq 'Running' -or `
61-
$(throw "$serviceName service is not running") > $null
70+
$(throw "$env:TINY_POSTGRES_SERVICE service is not running") > $null
6271
Write-Output '::endgroup::'
6372
6473
Write-Output '::group::pg_isready'
@@ -109,8 +118,8 @@ jobs:
109118
110119
- name: MySQL service install/start
111120
run: |
112-
mysqld.exe --install MySQL
113-
Start-Service MySQL
121+
mysqld.exe --install $env:TINY_MYSQL_SERVICE
122+
Start-Service $env:TINY_MYSQL_SERVICE
114123
115124
# The secured_password is store in the string form so we have to re-create the [SecureString]
116125
# from this encrypted string and then it can be decrypted as normally would 😬
@@ -178,24 +187,22 @@ jobs:
178187
"source $filepath" |
179188
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --password=$env:DB_MYSQL_ROOT_PASSWORD mysql
180189
181-
Restart-Service MySQL
190+
Restart-Service $env:TINY_MYSQL_SERVICE
182191
env:
183192
extracted_folder: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.ExtractedFolder }}
184193
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
185194
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
186195

187196
- name: MySQL service check status
188197
run: |
189-
$serviceName = 'MySQL'
190-
191198
Write-Output '::group::Get-Service'
192-
$mysqlService = Get-Service $serviceName
199+
$mysqlService = Get-Service $env:TINY_MYSQL_SERVICE
193200
Write-Output $mysqlService
194201
Write-Output '::endgroup::'
195202
196203
Write-Output '::group::Service running check'
197204
$mysqlService.status.ToString() -ceq 'Running' -or `
198-
$(throw "$serviceName service is not running") > $null
205+
$(throw "$env:TINY_MYSQL_SERVICE service is not running") > $null
199206
Write-Output '::endgroup::'
200207
201208
Write-Output '::group::Ping'
@@ -261,18 +268,18 @@ jobs:
261268
postgres.exe --version
262269
Write-Output '::endgroup::'
263270
264-
- name: Qt 5.15.2 install base components
271+
- name: Qt ${{ env.TINY_QT_VERSION }} install base components
265272
uses: jurplel/install-qt-action@v3
266273
with:
267274
archives: qtbase
268-
version: 5.15.2
269-
arch: win64_msvc2019_64
275+
version: ${{ env.TINY_QT_VERSION }}
276+
arch: ${{ env.TINY_QT_SPEC }}
270277
cache: true
271278
setup-python: false
272279
extra: --external 7z.exe
273280
dir: ${{ env.TinyRunnerWorkPath }}
274281

275-
- name: QMYSQL driver dlls initialize download (Qt 5.15.2)
282+
- name: QMYSQL driver dlls initialize download (Qt ${{ env.TINY_QT_VERSION }})
276283
id: downloads-initialize-qmysql-dlls
277284
run: |
278285
$filename = (Split-Path -Path $env:URL_QMYSQL_DLLS_MSVC_X64_QT_5 -Leaf)
@@ -298,7 +305,7 @@ jobs:
298305
cache_hash: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Hash }}
299306
cache_name: qmysql-dlls-qt5
300307

301-
- name: QMYSQL driver dlls download (Qt 5.15.2)
308+
- name: QMYSQL driver dlls download (Qt ${{ env.TINY_QT_VERSION }})
302309
if: steps.downloads-cache-qmysql-dlls.outputs.cache-hit != 'true'
303310
run: >-
304311
$response = Invoke-WebRequest -Uri $env:URL_QMYSQL_DLLS_MSVC_X64_QT_5
@@ -309,13 +316,13 @@ jobs:
309316
archive_filepath: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Filepath }}
310317
URL_QMYSQL_DLLS_MSVC_X64_QT_5: ${{ secrets.URL_QMYSQL_DLLS_MSVC_X64_QT_5 }}
311318

312-
- name: QMYSQL driver dlls install (Qt 5.15.2)
319+
- name: QMYSQL driver dlls install (Qt ${{ env.TINY_QT_VERSION }})
313320
run: |
314321
7z.exe x -y -o"$env:QT_PLUGIN_PATH/sqldrivers" $env:archive_filepath
315322
env:
316323
archive_filepath: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Filepath }}
317324

318-
- name: MySQL 8 libmysql.dll initialize download (Qt 5.15.2)
325+
- name: MySQL 8 libmysql.dll initialize download (Qt ${{ env.TINY_QT_VERSION }})
319326
id: downloads-initialize-mysql_8-libmysql-dll
320327
run: |
321328
$filename = (Split-Path -Path $env:URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_QT_5 -Leaf)
@@ -341,7 +348,7 @@ jobs:
341348
cache_hash: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Hash }}
342349
cache_name: mysql_8-libmysql-dll
343350

344-
- name: MySQL 8 libmysql.dll download (Qt 5.15.2)
351+
- name: MySQL 8 libmysql.dll download (Qt ${{ env.TINY_QT_VERSION }})
345352
if: steps.downloads-cache-mysql_8-libmysql-dll.outputs.cache-hit != 'true'
346353
run: |
347354
$response = Invoke-WebRequest -Uri $env:URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_QT_5
@@ -352,7 +359,7 @@ jobs:
352359
archive_filepath: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Filepath }}
353360
URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_QT_5: ${{ secrets.URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_QT_5 }}
354361

355-
- name: MySQL 8 libmysql.dll install (Qt 5.15.2)
362+
- name: MySQL 8 libmysql.dll install (Qt ${{ env.TINY_QT_VERSION }})
356363
run: |
357364
7z.exe x -y -o"$env:TinyRunnerWorkPath/TinyORM-bin" $env:archive_filepath
358365
env:
@@ -390,9 +397,7 @@ jobs:
390397

391398
- name: Ccache prepare configuration 🥳
392399
run: |
393-
# First value is compressed data size
394-
# ~ 175 * 3 + 100
395-
ccache.exe --set-config max_size=650M
400+
ccache.exe --set-config max_size=$env:TINY_CCACHE_MAX_SIZE
396401
ccache.exe --set-config sloppiness=pch_defines,time_macros
397402
ccache.exe --set-config depend_mode=true
398403
ccache.exe --set-config inode_cache=true
@@ -417,7 +422,7 @@ jobs:
417422
run: |
418423
"VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> $env:GITHUB_ENV
419424
'VCPKG_DEFAULT_TRIPLET=x64-windows' >> $env:GITHUB_ENV
420-
'VCPKG_MAX_CONCURRENCY=2' >> $env:GITHUB_ENV
425+
"VCPKG_MAX_CONCURRENCY=$env:TinyParallel" >> $env:GITHUB_ENV
421426
422427
- name: CMake print version
423428
run: |
@@ -457,8 +462,9 @@ jobs:
457462
-D BUILD_DRIVERS:BOOL=OFF
458463
459464
- name: TinyORM cmake build ✨ (msvc-cmake-debug)
460-
run: |
461-
cmake.exe --build ../TinyORM-builds-cmake/build-msvc-cmake-debug --target all --parallel 2
465+
run: >-
466+
cmake.exe --build ../TinyORM-builds-cmake/build-msvc-cmake-debug --target all
467+
--parallel $env:TinyParallel
462468
463469
- name: Ccache print statistics
464470
run: |
@@ -488,10 +494,12 @@ jobs:
488494
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }}
489495
TOM_TESTDATA_ENV: ${{ vars.TOM_TESTDATA_ENV }}
490496

497+
# $env:NUMBER_OF_PROCESSORS / 2 : rounds down
491498
- name: TinyORM execute ctest 🔥
492499
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug
493-
run: |
494-
ctest.exe --output-on-failure --parallel 4
500+
run: >-
501+
ctest.exe --output-on-failure
502+
--parallel ([int] $env:TinyParallel + $env:NUMBER_OF_PROCESSORS / 2)
495503
env:
496504
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
497505
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_57_COLLATION }}

0 commit comments

Comments
 (0)