FirebirdSQL / NETProvider

Firebird ADO.NET Data Provider
https://firebirdsql.org/en/net-provider/
Other
161 stars 66 forks source link

Run CI on Linux (Ubuntu) #1139

Open cincuranet opened 1 year ago

cincuranet commented 1 year ago

Does it make sense to run CI also on Linux (Ubuntu/ubuntu-latest/ubuntu-22.04)? Or just waste of CPU cycles/energy?

I guess the "biggest" chunk of work would be preparing Linux versions into https://github.com/FirebirdSQL/NETProvider-tests-infrastructure.

fdcastel commented 1 month ago

Been there, done that.

~https://github.com/fdcastel/firebird-binaries~ forget it... See the next message.

fdcastel commented 1 month ago

Better yet.

I put here another pet-project which I used in the past for testing database in multiple Firebird environments.

There are no binaries in this repository. The scripts can download and prepare any Firebird environment (from 2.5 to 5.0, embedded or not). For Windows and Linux.

fdcastel commented 1 month ago

Iā€™m currently working on the changes you requested for this overlooked PR. It will take me a few more days to finish.

Meanwhile, what about a rewrite of all those loose Powershell scripts around in the project root folder?

I could rewrite them using Invoke-Build. It's a fantastic piece of software (think Make, but with tasks declared in Powershell). I use it in all my projects.

A simple

Invoke-Build Tests

could build the projects, download the Firebird binaries (for Linux or Windows, according the environment) and run the tests.

Other helper tasks could be

Invoke-Build Benchmark
Invoke-Build UpdateHeaders
Invoke-Build Publish

etc.

cincuranet commented 1 month ago

I don't want unnecessary dependencies.

fdcastel commented 1 month ago

Sure! Nobody wants. The less, the better.

But in this case -- apart from being just one PSGet Install-Module away (*) -- it will surely reduce the work and keep the thing a bit more organized.

(*) Not unlike on how we add a NuGet package in a .csproj these days.

Things like this, this and this simply vanish away. The infrastructure takes care of these petty jobs. And the tasks dependencies are resolved automatically.

fdcastel commented 1 month ago

It seems Iā€™m getting old šŸ˜„.

I just found this PR where I had already suggested this to you šŸ˜….

Well... If you change your mind, I'm here to help.

I'm going back to work on the performance and instrumentation PRs, now.