2024-05-30 21:45:45 +03:00
name : Test with Different Databases
on :
pull_request :
push :
branches :
[ master, 'release/*']
jobs :
test :
strategy :
matrix :
db-provider : [ sqlite, mysql, postgresql]
runs-on : ubuntu-latest
2024-05-31 01:25:22 +03:00
2024-05-30 21:45:45 +03:00
steps :
- uses : actions/checkout@v4
- name : Set up .NET Core
uses : actions/setup-dotnet@v4
with :
dotnet-version : 8.0 .x
- name : Restore dependencies
run : dotnet restore
- name : Build the solution
run : dotnet build --configuration Release
- name : Install jq
run : sudo apt-get install -y jq
- name : Modify configuration for SQLite
if : matrix.db-provider == 'sqlite'
run : |
jq '.DbSettings.TypeDatabase = 1 | .DbSettings.ConnectionStringSql = "Data Source=test.db3"' Settings.json > temp.json && mv temp.json Settings.json
- name : Modify configuration for MySQL
if : matrix.db-provider == 'mysql'
run : |
2024-05-31 01:16:13 +03:00
jq '.DbSettings.TypeDatabase = 0 | .DbSettings.ConnectionStringSql = "Server=127.0.0.1;Port=5555;Database=testdb;Uid=root;Pwd=root;"' Settings.json > temp.json && mv temp.json Settings.json
2024-05-30 21:45:45 +03:00
2024-05-31 01:25:22 +03:00
- name : Install MySQL
if : matrix.db-provider == 'mysql'
run : |
sudo apt-get update
sudo apt-get install -y mysql-server
sudo service mysql start
sudo mysql -e "CREATE DATABASE testdb; CREATE USER 'root'@'localhost' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON testdb.* TO 'root'@'localhost'; FLUSH PRIVILEGES;"
2024-05-30 21:45:45 +03:00
- name : Modify configuration for PostgreSQL
if : matrix.db-provider == 'postgresql'
run : |
2024-05-31 01:16:13 +03:00
jq '.DbSettings.TypeDatabase = 2 | .DbSettings.ConnectionStringSql = "Host=127.0.0.1;Port=6666;Database=testdb;Username=postgres;Password=postgres"' Settings.json > temp.json && mv temp.json Settings.json
2024-05-30 21:45:45 +03:00
2024-05-31 01:25:22 +03:00
- name : Install PostgreSQL
if : matrix.db-provider == 'postgresql'
run : |
sudo apt-get update
sudo apt-get install -y postgresql postgresql-contrib
sudo service postgresql start
sudo -u postgres psql -c "CREATE DATABASE testdb;"
sudo -u postgres psql -c "CREATE USER postgres WITH PASSWORD 'postgres';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE testdb TO postgres;"
2024-05-30 21:45:45 +03:00
- name : Run tests
run : dotnet test --configuration Release --no-build --no-restore --verbosity normal