removed todo task #94
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
# MySQL | |
# --- | |
# Forces TLS connections with the caching_sha2_password and certificate validation, also validates | |
# issuer == CN=MySQL_Server_TinyORM_Auto_Generated_CA_Certificate and | |
# subject == CN=MySQL_Server_TinyORM_Auto_Generated_Client_Certificate. | |
# PostgreSQL | |
# --- | |
# It uses the default unencrypted database connections. | |
name: MSYS2 UCRT64 GCC/Clang | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- gh-actions | |
jobs: | |
build: | |
name: cmake build / ctest | |
runs-on: windows-2022 | |
strategy: | |
matrix: | |
compiler: | |
- key: clang | |
pacboy: [ 'clang:u', 'gcc:u' ] | |
command: clang++.exe | |
# Qt5 and Qt6 with g++ is causing exhausted memory even with -j1 | |
# - key: gcc | |
# pacboy: [ 'gcc:u' ] | |
# command: g++.exe | |
qt: | |
- key: qt5 | |
pacboy: qt5-base:u | |
- key: qt6 | |
pacboy: qt6-base:u | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 | |
env: | |
DB_SQLITE_DATABASE: ${{ secrets.DB_SQLITE_DATABASE }} | |
- name: PostgreSQL service start | |
run: | | |
Set-Service -Name postgresql-x64-14 -StartupType Manual | |
Start-Service postgresql-x64-14 | |
- name: PostgreSQL add on the $env:Path | |
run: | | |
"$env:PGBIN" >> $env:GITHUB_PATH | |
- name: PostgreSQL service check status | |
run: | | |
$pgsqlService = Get-Service postgresql-x64-14 | |
Write-Output $pgsqlService | |
$pgsqlService.status.ToString() -ceq 'Running' ` | |
-or $(throw 'postgresql-x64-14 service is not running') > $null | |
pg_isready.exe | |
- 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: Hosts add MySQL server hostname | |
run: >- | |
"127.0.0.1`t$env:DB_MYSQL_HOST" | | |
Add-Content -Path "$env:windir/System32/drivers/etc/hosts" -Force | |
env: | |
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST_SSL }} | |
- 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_8_ssl.template.ini) -creplace | |
'\{MYSQL_DATADIR\}', '${{ env.TinyRunnerWorkPath }}/mysql/data' -creplace | |
'\{MYSQL_HOST\}', $env:DB_MYSQL_HOST | | |
Set-Content -Path C:/mysql/my.ini | |
env: | |
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST_SSL }} | |
- name: MySQL initialize data directory | |
run: | | |
mysqld.exe --initialize-insecure --console | |
- name: MySQL generate SSL certificates | |
working-directory: ${{ env.TinyRunnerWorkPath }}/mysql/data | |
run: | | |
# It's enough to remove only these three certificate-related files | |
Remove-Item ./ca.pem, ./server-cert.pem, ./server-key.pem | |
mysql_ssl_rsa_setup.exe --suffix=TinyORM | |
- 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 with caching_sha2_password by '$env:DB_MYSQL_ROOT_PASSWORD' | |
require issuer '/CN=MySQL_Server_TinyORM_Auto_Generated_CA_Certificate' and | |
subject '/CN=MySQL_Server_TinyORM_Auto_Generated_Client_Certificate';" | | |
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 --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 MySQL | |
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_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 }} | |
- name: MySQL create TinyORM user | |
run: >- | |
"create user '$env:DB_MYSQL_USERNAME'@'%' | |
identified with caching_sha2_password by '$env:DB_MYSQL_PASSWORD' | |
require issuer '/CN=MySQL_Server_TinyORM_Auto_Generated_CA_Certificate' and | |
subject '/CN=MySQL_Server_TinyORM_Auto_Generated_Client_Certificate'; | |
grant all privileges on ``tinyorm\_%``.* 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: SQLite create TinyORM database | |
run: | | |
New-Item -Type Directory (Split-Path -Parent ${{ env.TinySQLitePath }}) | |
touch '${{ env.TinySQLitePath }}' | |
- name: Print MySQL, PostgreSQL database versions | |
run: | | |
mysql.exe --version | |
postgres.exe --version | |
- name: >- | |
MSYS2 UCRT64 setup (${{ join(matrix.compiler.pacboy, ', ') }}, lld:u, | |
${{ matrix.qt.pacboy }}, ccache:u) | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ucrt64 | |
path-type: minimal | |
update: true | |
install: | | |
git | |
pacboy: >- | |
${{ join(matrix.compiler.pacboy, ' ') }} lld:u | |
cmake:u ninja:u ccache:u | |
${{ matrix.qt.pacboy }} | |
libmariadbclient:u postgresql:u | |
- name: Ccache initialize | |
id: ccache-initialize-cache | |
shell: msys2 {0} | |
run: | | |
# No need to install it as it's installed above using the pacboy | |
cachePath=$(ccache.exe --get-config cache_dir) | |
echo "CachePath=$cachePath" >> $GITHUB_OUTPUT | |
echo "ImageOS=$ImageOS" >> $GITHUB_OUTPUT | |
- name: Ccache restore cache πΊ | |
uses: actions/cache@v3 | |
with: | |
# This path is ok also for MSYS2 shells | |
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: msys2-ucrt64-${{ matrix.compiler.key }}-${{ matrix.qt.key }} | |
cache_path: ${{ steps.ccache-initialize-cache.outputs.CachePath }} | |
image_os: ${{ steps.ccache-initialize-cache.outputs.ImageOS }} | |
- name: Ccache setup π₯³ | |
shell: msys2 {0} | |
run: | | |
echo '::group::Prepare ccache config' | |
# gcc: ~ 180 * 3 + 100 ; clang: ~ 140 * 3 + 100 | |
ccache.exe --set-config max_size=${{ matrix.compiler.key == 'gcc' && '640M' || '520M' }} | |
ccache.exe --set-config sloppiness=pch_defines,time_macros | |
ccache.exe --show-config | |
echo '::endgroup::' | |
echo '::group::Clear ccache statistics' | |
ccache.exe --zero-stats | |
echo '::endgroup::' | |
- name: vcpkg set-up environment | |
shell: msys2 {0} | |
run: | | |
echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV | |
echo 'VCPKG_DEFAULT_TRIPLET=x64-mingw-dynamic' >> $GITHUB_ENV | |
echo 'VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-dynamic' >> $GITHUB_ENV | |
echo 'VCPKG_MAX_CONCURRENCY=2' >> $GITHUB_ENV | |
- name: CMake print version | |
shell: msys2 {0} | |
run: | | |
cmake.exe --version | |
- name: TinyORM create build folder (${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug) | |
run: >- | |
New-Item -Type Directory | |
'../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug' | |
- name: TinyORM cmake configure (${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug) | |
shell: msys2 {0} | |
run: >- | |
cmake.exe | |
-S . | |
-B ../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug | |
-G Ninja | |
-D CMAKE_CXX_COMPILER_LAUNCHER:FILEPATH='/ucrt64/bin/ccache.exe' | |
-D CMAKE_CXX_COMPILER:FILEPATH="/ucrt64/bin/${{ matrix.compiler.command }}" | |
-D CMAKE_TOOLCHAIN_FILE:FILEPATH="$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" | |
-D CMAKE_DISABLE_PRECOMPILE_HEADERS:BOOL=ON | |
-D CMAKE_BUILD_TYPE:STRING=Debug | |
-D VERBOSE_CONFIGURE:BOOL=ON | |
-D MATCH_EQUAL_EXPORTED_BUILDTREE: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 | |
- name: TinyORM cmake build β¨ (${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug) | |
shell: msys2 {0} | |
run: >- | |
cmake.exe | |
--build ../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug | |
--target all --parallel ${{ matrix.compiler.key == 'gcc' && 1 || 2 }} | |
- name: Ccache statistics | |
shell: msys2 {0} | |
run: | | |
ccache.exe --show-stats -vv | |
- name: Create and Seed tables for unit tests π | |
shell: msys2 {0} | |
working-directory: >- | |
../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug/tests/testdata_tom | |
run: >- | |
export PATH=../..${PATH:+:}"$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_COLLATION }} | |
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }} | |
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST_SSL }} | |
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }} | |
DB_MYSQL_SSL_CA: ${{ env.TinyRunnerWorkPath }}/mysql/data/ca.pem | |
DB_MYSQL_SSL_CERT: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-cert.pem | |
DB_MYSQL_SSL_KEY: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-key.pem | |
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: testing | |
- name: TinyORM execute ctest π₯ | |
shell: msys2 {0} | |
working-directory: >- | |
../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug | |
run: | | |
ctest.exe --output-on-failure | |
env: | |
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }} | |
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_COLLATION }} | |
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }} | |
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST_SSL }} | |
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }} | |
DB_MYSQL_SSL_CA: ${{ env.TinyRunnerWorkPath }}/mysql/data/ca.pem | |
DB_MYSQL_SSL_CERT: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-cert.pem | |
DB_MYSQL_SSL_KEY: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-key.pem | |
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: testing | |
- name: Tom example test some commands (MySQL) π | |
shell: msys2 {0} | |
working-directory: >- | |
../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug/examples/tom | |
run: | | |
export PATH=../..${PATH:+:}"$PATH" | |
./tom.exe migrate:install --database=tinyorm_tom_mysql --no-ansi | |
./tom.exe migrate:status --database=tinyorm_tom_mysql --no-ansi | |
./tom.exe migrate --database=tinyorm_tom_mysql --seed --no-ansi | |
./tom.exe migrate:refresh --database=tinyorm_tom_mysql --seed --no-ansi | |
./tom.exe migrate:status --database=tinyorm_tom_mysql --no-ansi | |
env: | |
DB_MYSQL_CHARSET: ${{ secrets.DB_MYSQL_CHARSET }} | |
DB_MYSQL_COLLATION: ${{ secrets.DB_MYSQL_COLLATION }} | |
DB_MYSQL_DATABASE: ${{ secrets.DB_MYSQL_DATABASE }} | |
DB_MYSQL_HOST: ${{ secrets.DB_MYSQL_HOST_SSL }} | |
DB_MYSQL_PASSWORD: ${{ secrets.DB_MYSQL_PASSWORD }} | |
DB_MYSQL_SSL_CA: ${{ env.TinyRunnerWorkPath }}/mysql/data/ca.pem | |
DB_MYSQL_SSL_CERT: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-cert.pem | |
DB_MYSQL_SSL_KEY: ${{ env.TinyRunnerWorkPath }}/mysql/data/client-key.pem | |
DB_MYSQL_USERNAME: ${{ secrets.DB_MYSQL_USERNAME }} | |
TOM_EXAMPLE_ENV: testing | |
- name: Tom example test some commands (PostgreSQL) π | |
shell: msys2 {0} | |
working-directory: >- | |
../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug/examples/tom | |
run: | | |
export PATH=../..${PATH:+:}"$PATH" | |
./tom.exe migrate:install --database=tinyorm_tom_postgres --no-ansi | |
./tom.exe migrate:status --database=tinyorm_tom_postgres --no-ansi | |
./tom.exe migrate --database=tinyorm_tom_postgres --seed --no-ansi | |
./tom.exe migrate:refresh --database=tinyorm_tom_postgres --seed --no-ansi | |
./tom.exe migrate:status --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: testing | |
- name: Tom example test some commands (SQLite) π | |
shell: msys2 {0} | |
working-directory: >- | |
../TinyORM-builds-cmake/build-${{ matrix.compiler.key }}-${{ matrix.qt.key }}-cmake-debug/examples/tom | |
run: | | |
export PATH=../..${PATH:+:}"$PATH" | |
./tom.exe migrate:install --database=tinyorm_tom_sqlite --no-ansi | |
./tom.exe migrate:status --database=tinyorm_tom_sqlite --no-ansi | |
./tom.exe migrate --database=tinyorm_tom_sqlite --seed --no-ansi | |
./tom.exe migrate:refresh --database=tinyorm_tom_sqlite --seed --no-ansi | |
./tom.exe migrate:status --database=tinyorm_tom_sqlite --no-ansi | |
env: | |
DB_SQLITE_DATABASE: ${{ env.TinySQLitePath }} | |
TOM_EXAMPLE_ENV: testing |