Skip to content

MSVC2019 Qt5.15

MSVC2019 Qt5.15 #387

Workflow file for this run

# MySQL and PostgreSQL
# ---
# Both use the default unencrypted database connections.
name: MSVC2019 Qt5.15
on:
workflow_dispatch:
push:
branches:
- main
- gh-actions
jobs:
build:
name: cmake build / ctest
runs-on: windows-2019
steps:
- uses: actions/checkout@v4
- name: TinyORM prepare environment
run: |
$runnerWorkPath = Resolve-Path -Path '${{ runner.workspace }}/..'
"TinyRunnerWorkPath=$runnerWorkPath" >> $env:GITHUB_ENV
$sqlitePath = Join-Path -Path $runnerWorkPath -ChildPath "SQLite/$env:DB_SQLITE_DATABASE"
"TinySQLitePath=$sqlitePath" >> $env:GITHUB_ENV
$mysqlExePath = (Get-Command -Name mysql.exe).Source
$mysqlInstallationPath = Split-Path -Parent -Path (Split-Path -Parent -Path $mysqlExePath)
"TinyMySQLInstallationPath=$mysqlInstallationPath" >> $env:GITHUB_ENV
env:
DB_SQLITE_DATABASE: ${{ secrets.DB_SQLITE_DATABASE }}
- name: PostgreSQL add on the $env:Path
run: |
"$env:PGBIN" >> $env:GITHUB_PATH
- name: PostgreSQL service start
run: |
Set-Service -Name postgresql-x64-14 -StartupType Manual
Start-Service postgresql-x64-14
- name: PostgreSQL service check status
run: |
$serviceName = 'postgresql-x64-14'
Write-Output '::group::Get-Service'
$pgsqlService = Get-Service $serviceName
Write-Output $pgsqlService
Write-Output '::endgroup::'
Write-Output '::group::Service running check'
$pgsqlService.status.ToString() -ceq 'Running' -or `
$(throw "$serviceName service is not running") > $null
Write-Output '::endgroup::'
Write-Output '::group::pg_isready'
pg_isready.exe
Write-Output '::endgroup::'
- name: PostgreSQL create TinyORM user
run: >-
"create user `"$env:DB_PGSQL_USERNAME`"
with createdb password '$env:DB_PGSQL_PASSWORD';" | psql.exe
env:
DB_PGSQL_PASSWORD: ${{ secrets.DB_PGSQL_PASSWORD }}
DB_PGSQL_USERNAME: ${{ secrets.DB_PGSQL_USERNAME }}
- name: PostgreSQL create TinyORM database
run: |
createdb.exe --owner=$env:DB_PGSQL_USERNAME $env:DB_PGSQL_DATABASE
env:
DB_PGSQL_DATABASE: ${{ secrets.DB_PGSQL_DATABASE }}
DB_PGSQL_USERNAME: ${{ secrets.DB_PGSQL_USERNAME }}
- name: MySQL create data folder
run: |
New-Item -Type Directory '${{ env.TinyRunnerWorkPath }}/mysql/data'
- name: MySQL initialize my.ini configuration
working-directory: .github/resources/windows
run: >-
(Get-Content -Path ./my_5.template.ini) -creplace
'\{MYSQL_DATADIR\}', '${{ env.TinyRunnerWorkPath }}/mysql/data' -creplace
'\{MYSQL_HOST\}', $env:DB_MYSQL_HOST |
Set-Content -Path '${{ env.TinyMySQLInstallationPath }}/my.ini'
env:
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST }}
- name: MySQL initialize data directory
run: |
mysqld.exe --initialize-insecure --console
- name: MySQL service install/start
run: |
mysqld.exe --install MySQL
Start-Service MySQL
- name: MySQL change ${{ secrets.DB_MYSQL_ROOT_USERNAME }} password
run: >-
"alter user '$env:DB_MYSQL_ROOT_USERNAME'@'localhost'
identified by '$env:DB_MYSQL_ROOT_PASSWORD';" |
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --skip-password
env:
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
- name: MySQL time zone POSIX tables initialize download
id: downloads-initialize-mysql-timezone-tables
run: |
$filename = (Split-Path -Path $env:URL_MYSQL_TIMEZONE_TABLES -Leaf)
"Filename=$filename" >> $env:GITHUB_OUTPUT
$filepath = Join-Path -Path ${{ runner.temp }} -ChildPath $filename
"Filepath=$filepath" >> $env:GITHUB_OUTPUT
$basename = Split-Path -Path $filename -LeafBase
$extractedFolder = Join-Path -Path ${{ runner.temp }} -ChildPath $basename
"ExtractedFolder=$extractedFolder" >> $env:GITHUB_OUTPUT
"Hash=$basename" >> $env:GITHUB_OUTPUT
env:
URL_MYSQL_TIMEZONE_TABLES: ${{ secrets.URL_MYSQL_TIMEZONE_TABLES }}
- name: MySQL time zone POSIX tables restore cache (download)
uses: actions/cache@v3
id: downloads-cache-mysql-timezone-tables
with:
path: ${{ env.extracted_folder }}
key: ${{ runner.os }}-databases-${{ env.cache_name }}-${{ env.cache_hash }}
env:
cache_hash: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.Hash }}
cache_name: mysql-timezone-tables
extracted_folder: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.ExtractedFolder }}
- name: MySQL time zone POSIX tables download
if: steps.downloads-cache-mysql-timezone-tables.outputs.cache-hit != 'true'
run: >-
# $response = Invoke-WebRequest -Uri $env:URL_MYSQL_TIMEZONE_TABLES -HttpVersion 2.0
# $response | Select-Object -ExpandProperty Content |
Set-Content -Path $env:archive_filepath -AsByteStream
curl.exe --fail --silent --show-error --location --remote-name
--output-dir '${{ runner.temp }}' "$env:URL_MYSQL_TIMEZONE_TABLES"
7z.exe x -y -o'${{ runner.temp }}' "$env:archive_filepath"
env:
archive_filepath: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.Filepath }}
URL_MYSQL_TIMEZONE_TABLES: ${{ secrets.URL_MYSQL_TIMEZONE_TABLES }}
- name: MySQL populate time zone tables πŸ‘Œ
run: >-
$filepath = Join-Path -Path $env:extracted_folder -ChildPath 'timezone_posix.sql'
# source path can't be quoted, it works correctly even with spaces
"source $filepath" |
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --password=$env:DB_MYSQL_ROOT_PASSWORD mysql
Restart-Service MySQL
env:
extracted_folder: ${{ steps.downloads-initialize-mysql-timezone-tables.outputs.ExtractedFolder }}
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
- name: MySQL service check status
run: |
$serviceName = 'MySQL'
Write-Output '::group::Get-Service'
$mysqlService = Get-Service $serviceName
Write-Output $mysqlService
Write-Output '::endgroup::'
Write-Output '::group::Service running check'
$mysqlService.status.ToString() -ceq 'Running' -or `
$(throw "$serviceName service is not running") > $null
Write-Output '::endgroup::'
Write-Output '::group::Ping'
mysqladmin.exe --user=$env:DB_MYSQL_ROOT_USERNAME `
--password=$env:DB_MYSQL_ROOT_PASSWORD ping
Write-Output '::endgroup::'
env:
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
- name: MySQL create TinyORM database
run: >-
"create database if not exists ``$env:DB_MYSQL_DATABASE``
default character set $env:DB_MYSQL_CHARSET
default collate $env:DB_MYSQL_COLLATION;" |
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --password=$env:DB_MYSQL_ROOT_PASSWORD
env:
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_57_COLLATION }}
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }}
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
# I had to assign the SUPER privilege to be able set global `max_allowed_packet` for tst_blobs,
# it looks like it's only needed for MySQL v5.7, on MySQL v8 isn't needed, also, the SUPER
# privilege can't be assigned to the table eg. tinyorm_% because it's a global privilege so
# * have to be used.
- name: MySQL create TinyORM user
run: >-
"create user '$env:DB_MYSQL_USERNAME'@'%'
identified by '$env:DB_MYSQL_PASSWORD';
grant all privileges on ``tinyorm\_%``.* to '$env:DB_MYSQL_USERNAME'@'%';
grant super on *.* to '$env:DB_MYSQL_USERNAME'@'%';
grant select on ``mysql``.``time_zone_name`` to '$env:DB_MYSQL_USERNAME'@'%';
flush privileges;" |
mysql.exe --user=$env:DB_MYSQL_ROOT_USERNAME --password=$env:DB_MYSQL_ROOT_PASSWORD
env:
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }}
DB_MYSQL_ROOT_PASSWORD: ${{ secrets.DB_MYSQL_ROOT_PASSWORD }}
DB_MYSQL_ROOT_USERNAME: ${{ secrets.DB_MYSQL_ROOT_USERNAME }}
DB_MYSQL_USERNAME: ${{ secrets.DB_MYSQL_USERNAME }}
- name: MySQL add libmysql.dll on the $env:Path, INCLUDE, and LIB
run: |
'${{ env.TinyMySQLInstallationPath }}\lib' >> $env:GITHUB_PATH
# Needed by the lastest FindMySQL.cmake module, it stopped working without this
'INCLUDE=${{ env.TinyMySQLInstallationPath }}\include' >> $env:GITHUB_ENV
'LIB=${{ env.TinyMySQLInstallationPath }}\lib' >> $env:GITHUB_ENV
- name: SQLite create TinyORM database
run: |
New-Item -Type Directory (Split-Path -Parent -Path '${{ env.TinySQLitePath }}')
New-Item -Type File -Path '${{ env.TinySQLitePath }}'
- name: Print MySQL, PostgreSQL database versions
run: |
Write-Output '::group::MySQL version'
mysql.exe --version
Write-Output '::endgroup::'
Write-Output '::group::PostgreSQL version'
postgres.exe --version
Write-Output '::endgroup::'
- name: Qt 5.15.2 install base components
uses: jurplel/install-qt-action@v3
with:
archives: qtbase
version: 5.15.2
arch: win64_msvc2019_64
cache: true
setup-python: false
extra: --external 7z.exe
dir: ${{ env.TinyRunnerWorkPath }}
- name: QMYSQL driver dlls initialize download (Qt 5.15.2)
id: downloads-initialize-qmysql-dlls
run: |
$filename = (Split-Path -Path $env:URL_QMYSQL_DLLS_MSVC_X64_5_15_2 -Leaf)
"Filename=$filename" >> $env:GITHUB_OUTPUT
$filepath = Join-Path -Path ${{ runner.temp }} -ChildPath $filename
"Filepath=$filepath" >> $env:GITHUB_OUTPUT
$response = Invoke-WebRequest -Uri $env:URL_CACHE_HASH_WINDOWS
"Hash=$($response.Content)" >> $env:GITHUB_OUTPUT
env:
URL_QMYSQL_DLLS_MSVC_X64_5_15_2: ${{ secrets.URL_QMYSQL_DLLS_MSVC_X64_5_15_2 }}
URL_CACHE_HASH_WINDOWS: ${{ secrets.URL_CACHE_HASH_WINDOWS }}
- name: QMYSQL driver dlls restore cache (download)
uses: actions/cache@v3
id: downloads-cache-qmysql-dlls
with:
path: ${{ env.archive_filepath }}
key: ${{ runner.os }}-drivers-${{ env.cache_name }}-${{ env.cache_hash }}
env:
archive_filepath: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Filepath }}
cache_hash: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Hash }}
cache_name: qmysql-dlls-qt5
- name: QMYSQL driver dlls download (Qt 5.15.2)
if: steps.downloads-cache-qmysql-dlls.outputs.cache-hit != 'true'
run: >-
$response = Invoke-WebRequest -Uri $env:URL_QMYSQL_DLLS_MSVC_X64_5_15_2
$response | Select-Object -ExpandProperty Content |
Set-Content -Path $env:archive_filepath -AsByteStream
env:
archive_filepath: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Filepath }}
URL_QMYSQL_DLLS_MSVC_X64_5_15_2: ${{ secrets.URL_QMYSQL_DLLS_MSVC_X64_5_15_2 }}
- name: QMYSQL driver dlls install (Qt 5.15.2)
run: |
7z.exe x -y -o"$env:QT_PLUGIN_PATH/sqldrivers" $env:archive_filepath
env:
archive_filepath: ${{ steps.downloads-initialize-qmysql-dlls.outputs.Filepath }}
- name: MySQL 8 libmysql.dll initialize download (Qt 5.15.2)
id: downloads-initialize-mysql_8-libmysql-dll
run: |
$filename = (Split-Path -Path $env:URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2 -Leaf)
"Filename=$filename" >> $env:GITHUB_OUTPUT
$filepath = Join-Path -Path ${{ runner.temp }} -ChildPath $filename
"Filepath=$filepath" >> $env:GITHUB_OUTPUT
$response = Invoke-WebRequest -Uri $env:URL_CACHE_HASH_WINDOWS
"Hash=$($response.Content)" >> $env:GITHUB_OUTPUT
env:
URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2: ${{ secrets.URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2 }}
URL_CACHE_HASH_WINDOWS: ${{ secrets.URL_CACHE_HASH_WINDOWS }}
- name: MySQL 8 libmysql.dll restore cache
uses: actions/cache@v3
id: downloads-cache-mysql_8-libmysql-dll
with:
path: ${{ env.archive_filepath }}
key: ${{ runner.os }}-drivers-${{ env.cache_name }}-${{ env.cache_hash }}
env:
archive_filepath: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Filepath }}
cache_hash: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Hash }}
cache_name: mysql_8-libmysql-dll
- name: MySQL 8 libmysql.dll download (Qt 5.15.2)
if: steps.downloads-cache-mysql_8-libmysql-dll.outputs.cache-hit != 'true'
run: |
$response = Invoke-WebRequest -Uri $env:URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2
$response | Select-Object -ExpandProperty Content |
Set-Content -Path $env:archive_filepath -AsByteStream
env:
archive_filepath: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Filepath }}
URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2: ${{ secrets.URL_LIBMYSQL_DLL_MYSQL_8_MSVC_X64_5_15_2 }}
- name: MySQL 8 libmysql.dll install (Qt 5.15.2)
run: |
7z.exe x -y -o'${{ env.TinyRunnerWorkPath }}/TinyORM-bin' $env:archive_filepath
env:
archive_filepath: ${{ steps.downloads-initialize-mysql_8-libmysql-dll.outputs.Filepath }}
- name: MySQL 8 libmysql.dll add on the $env:Path
run: |
'${{ env.TinyRunnerWorkPath }}/TinyORM-bin' >> $env:GITHUB_PATH
- name: Ccache initialize
id: ccache-initialize-cache
run: |
Write-Output '::group::Install'
choco.exe install ccache --yes
Write-Output '::endgroup::'
Write-Output '::group::get-config cache_dir'
$cachePath = ccache.exe --get-config cache_dir
"CachePath=$cachePath" >> $env:GITHUB_OUTPUT
"ImageOS=$env:ImageOS" >> $env:GITHUB_OUTPUT
Write-Output '::endgroup::'
- name: Ccache restore cache πŸ•Ί
uses: actions/cache@v3
with:
path: ${{ env.cache_path }}
key: ${{ runner.os }}-${{ env.image_os }}-ccache-${{ env.cache_name }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-${{ env.image_os }}-ccache-${{ env.cache_name }}-
env:
cache_name: msvc2019-qt5
cache_path: ${{ steps.ccache-initialize-cache.outputs.CachePath }}
image_os: ${{ steps.ccache-initialize-cache.outputs.ImageOS }}
- name: Ccache prepare configuration πŸ₯³
run: |
# ~ 175 * 3 + 100
ccache.exe --set-config max_size=650M
ccache.exe --set-config sloppiness=pch_defines,time_macros
- name: Ccache print version and configuration
run: |
Write-Output '::group::Print version'
ccache.exe --version
Write-Output '::endgroup::'
Write-Output '::group::Print ccache config'
ccache.exe --show-config
Write-Output '::endgroup::'
- name: Visual Studio 2019 pwsh shell setup
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x64
# Must be after the ilammy/msvc-dev-cmd@v1 because vcvars64 overrides the VCPKG_ROOT
- name: vcpkg prepare environment
run: |
"VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> $env:GITHUB_ENV
'VCPKG_DEFAULT_TRIPLET=x64-windows' >> $env:GITHUB_ENV
'VCPKG_MAX_CONCURRENCY=2' >> $env:GITHUB_ENV
- name: CMake print version
run: |
cmake.exe --version
- name: TinyORM create build folder (msvc-cmake-debug)
run: |
New-Item -Type Directory '../TinyORM-builds-cmake/build-msvc-cmake-debug'
- name: Ccache clear statistics
run: |
ccache.exe --zero-stats
- name: TinyORM cmake configure (msvc-cmake-debug)
run: >-
cmake.exe
-S .
-B ../TinyORM-builds-cmake/build-msvc-cmake-debug
-G Ninja
-D CMAKE_CXX_COMPILER_LAUNCHER:FILEPATH='C:/ProgramData/chocolatey/bin/ccache.exe'
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
-D CMAKE_DISABLE_PRECOMPILE_HEADERS:BOOL=ON
-D CMAKE_EXPORT_PACKAGE_REGISTRY:BOOL=OFF
-D CMAKE_BUILD_TYPE:STRING=Debug
-D CMAKE_CXX_SCAN_FOR_MODULES:BOOL=OFF
-D VCPKG_APPLOCAL_DEPS:BOOL=OFF
-D VERBOSE_CONFIGURE:BOOL=ON
-D BUILD_TREE_DEPLOY:BOOL=OFF
-D MATCH_EQUAL_EXPORTED_BUILDTREE:BOOL=OFF
-D STRICT_MODE:BOOL=OFF
-D MYSQL_PING:BOOL=ON
-D BUILD_TESTS:BOOL=ON
-D ORM:BOOL=ON
-D TOM:BOOL=ON
-D TOM_EXAMPLE:BOOL=ON
-D BUILD_DRIVERS:BOOL=OFF
- name: TinyORM cmake build ✨ (msvc-cmake-debug)
run: |
cmake.exe --build ../TinyORM-builds-cmake/build-msvc-cmake-debug --target all --parallel 2
- name: Ccache print statistics
run: |
ccache.exe --show-stats -vv
- name: Create and Seed tables for unit tests πŸŽ‰
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug/tests/testdata_tom
run: >-
$env:Path = '..\..;' + $env:Path
.\tom_testdata.exe migrate
--database=tinyorm_testdata_tom_mysql,tinyorm_testdata_tom_postgres,tinyorm_testdata_tom_sqlite
--seed --no-ansi
env:
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_57_COLLATION }}
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }}
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST }}
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }}
DB_MYSQL_USERNAME: ${{ secrets.DB_MYSQL_USERNAME }}
DB_PGSQL_CHARSET: ${{ secrets.DB_PGSQL_CHARSET }}
DB_PGSQL_DATABASE: ${{ secrets.DB_PGSQL_DATABASE }}
DB_PGSQL_HOST: ${{ secrets.DB_PGSQL_HOST }}
DB_PGSQL_PASSWORD: ${{ secrets.DB_PGSQL_PASSWORD }}
DB_PGSQL_SEARCHPATH: ${{ secrets.DB_PGSQL_SEARCHPATH }}
DB_PGSQL_USERNAME: ${{ secrets.DB_PGSQL_USERNAME }}
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }}
TOM_TESTDATA_ENV: ${{ vars.TOM_TESTDATA_ENV }}
- name: TinyORM execute ctest πŸ”₯
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug
run: |
ctest.exe --output-on-failure
env:
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_57_COLLATION }}
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }}
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST }}
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }}
DB_MYSQL_USERNAME: ${{ secrets.DB_MYSQL_USERNAME }}
DB_PGSQL_CHARSET: ${{ secrets.DB_PGSQL_CHARSET }}
DB_PGSQL_DATABASE: ${{ secrets.DB_PGSQL_DATABASE }}
DB_PGSQL_HOST: ${{ secrets.DB_PGSQL_HOST }}
DB_PGSQL_PASSWORD: ${{ secrets.DB_PGSQL_PASSWORD }}
DB_PGSQL_SEARCHPATH: ${{ secrets.DB_PGSQL_SEARCHPATH }}
DB_PGSQL_USERNAME: ${{ secrets.DB_PGSQL_USERNAME }}
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }}
TOM_TESTS_ENV: ${{ vars.TOM_TESTS_ENV }}
- name: Tom example test some commands (MySQL) πŸš€
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug/examples/tom
run: |
$env:Path = '..\..;' + $env:Path
.\tom.exe migrate:fresh --database=tinyorm_tom_mysql --no-ansi
.\tom.exe migrate:uninstall --reset --database=tinyorm_tom_mysql --no-ansi
.\tom.exe migrate:install --database=tinyorm_tom_mysql --no-ansi
.\tom.exe migrate --database=tinyorm_tom_mysql --seed --no-ansi
.\tom.exe migrate:status --database=tinyorm_tom_mysql --no-ansi
.\tom.exe migrate:refresh --database=tinyorm_tom_mysql --seed --no-ansi
.\tom.exe migrate:reset --database=tinyorm_tom_mysql --no-ansi
.\tom.exe migrate:uninstall --database=tinyorm_tom_mysql --no-ansi
env:
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }}
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_57_COLLATION }}
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }}
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST }}
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }}
DB_MYSQL_USERNAME: ${{ secrets.DB_MYSQL_USERNAME }}
TOM_EXAMPLE_ENV: ${{ vars.TOM_EXAMPLE_ENV }}
- name: Tom example test some commands (PostgreSQL) πŸ™Œ
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug/examples/tom
run: |
$env:Path = '..\..;' + $env:Path
.\tom.exe migrate:fresh --database=tinyorm_tom_postgres --no-ansi
.\tom.exe migrate:uninstall --reset --database=tinyorm_tom_postgres --no-ansi
.\tom.exe migrate:install --database=tinyorm_tom_postgres --no-ansi
.\tom.exe migrate --database=tinyorm_tom_postgres --seed --no-ansi
.\tom.exe migrate:status --database=tinyorm_tom_postgres --no-ansi
.\tom.exe migrate:refresh --database=tinyorm_tom_postgres --seed --no-ansi
.\tom.exe migrate:reset --database=tinyorm_tom_postgres --no-ansi
.\tom.exe migrate:uninstall --database=tinyorm_tom_postgres --no-ansi
env:
DB_PGSQL_CHARSET: ${{ secrets.DB_PGSQL_CHARSET }}
DB_PGSQL_DATABASE: ${{ secrets.DB_PGSQL_DATABASE }}
DB_PGSQL_HOST: ${{ secrets.DB_PGSQL_HOST }}
DB_PGSQL_PASSWORD: ${{ secrets.DB_PGSQL_PASSWORD }}
DB_PGSQL_SEARCHPATH: ${{ secrets.DB_PGSQL_SEARCHPATH }}
DB_PGSQL_USERNAME: ${{ secrets.DB_PGSQL_USERNAME }}
TOM_EXAMPLE_ENV: ${{ vars.TOM_EXAMPLE_ENV }}
- name: Tom example test some commands (SQLite) 🏁
working-directory: ../TinyORM-builds-cmake/build-msvc-cmake-debug/examples/tom
run: |
$env:Path = '..\..;' + $env:Path
.\tom.exe migrate:fresh --database=tinyorm_tom_sqlite --no-ansi
.\tom.exe migrate:uninstall --reset --database=tinyorm_tom_sqlite --no-ansi
.\tom.exe migrate:install --database=tinyorm_tom_sqlite --no-ansi
.\tom.exe migrate --database=tinyorm_tom_sqlite --seed --no-ansi
.\tom.exe migrate:status --database=tinyorm_tom_sqlite --no-ansi
.\tom.exe migrate:refresh --database=tinyorm_tom_sqlite --seed --no-ansi
.\tom.exe migrate:reset --database=tinyorm_tom_sqlite --no-ansi
.\tom.exe migrate:uninstall --database=tinyorm_tom_sqlite --no-ansi
env:
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }}
TOM_EXAMPLE_ENV: ${{ vars.TOM_EXAMPLE_ENV }}