CI against MariaDB 10.4 GA

Hi,

I’d like to know how to run Ci against MariaDB 10.4 at https://buildkite.com/rails/rails

Because I used to bump MariaDB version to the latest one when the new GA version was released.

  • MariaDB 10.3

https://github.com/rails/rails/pull/33028

  • MariaDB 10.4

https://github.com/rails/rails/pull/29850

MariaDB 10.4.6 has been released on Jun 18th, https://mariadb.com/kb/en/library/mariadb-1046-release-notes/

I also wanted to run CI against 10.4.6 and wanted to know how since Rails CI has been migrated from Travis CI to Buildkite.

Thanks,

Hey!

Sorry, the CI config currently lives in a separate repository. That was originally to allow it to be found & applied for older commits / branches — but I need to move it into the main repo now for future master work: between combining several old files and support for several Rails branches, it’s currently quite tangled.

The part you’re looking for is here:
  https://github.com/rails/buildkite-config/blob/51686de9826737342f672a0fde39c47268c25df5/pipeline-generate#L225-L230

which overrides:
  https://github.com/rails/buildkite-config/blob/51686de9826737342f672a0fde39c47268c25df5/docker-compose.yml#L104

More importantly for the immediate concern, the fact it’s in a separate repo means it’s harder to test a PRed change to the build config itself. Oops!

Until I fix that, the simplest option is probably to do the docker run locally, with something like:

cd rails
git clone https://github.com/rails/buildkite-config .buildkite/
RUBY_IMAGE=ruby:2.6 docker-compose -f .buildkite/docker-compose.yml build base &&
  CI=1 MYSQL_IMAGE=mariadb:10.4 docker-compose -f .buildkite/docker-compose.yml run mysqldb runner activerecord 'rake db:mysql:rebuild test:mysql2'

And to fully clear things out between runs (the MYSQL_IMAGE is particularly sticky):

docker-compose -f .buildkite/docker-compose.yml rm --stop mysql

I just ran the above command to check I had it right, and all the tests were green. :+1:t2:

Sorry this process got much uglier. I’ll try to make it better again in future. :bowing_man:t2:‍♂

This does have me thinking… in retrospect, as we’ve previously seen test incompatibilities between major versions (on all the RDBMSes, at various times), maybe using ‘latest’ is a mistake, and the build config should always use a specific major version. ¯\_(ツ)_/¯

Matthew

Thank for the useful information.

I just recall the name of https://github.com/rails/buildkite-config but did not know how to use it.

Running Active Record unit test locally against MariaDB 10.4 works like a charm.

I agree that each CI should specify the major version of each RDBMS and look forward that buildkite-config repository takes pull requests to test themselves.

Thanks,