Loading .gitlab-ci.yml +46 −30 Original line number Diff line number Diff line Loading @@ -106,33 +106,23 @@ run-tests-with-mariadb: - amd64 - docker - linux image: debian:bookworm image: registry.gitlab.com/tango-controls/docker/ci/cpp/debian12:cppTango_version_main before_script: - apt-get update - sudo apt-get update - > apt-get install -y build-essential cmake sudo apt-get install -y libboost-test-dev libtango-dev libmariadb-dev-compat mariadb-server pipx python3 sudo - pipx install gcovr==8.4 - pipx ensurepath - source ~/.bashrc - sudo cp ci/99_non-default-port.cnf /etc/mysql/mariadb.conf.d - sudo cp ci/debian.cnf /etc/mysql - service mariadb restart - sudo service mariadb restart - sudo mysql --defaults-file=/etc/mysql/debian.cnf -u root -e "SET PASSWORD = PASSWORD('secret');" - echo "TANGO_HOST=127.0.0.1:10000" > /etc/tangorc - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - mkdir build - cmake -B build -S . -G Ninja -DTDB_ENABLE_COVERAGE=ON -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_HOST="127.0.0.1:4711" -DMYSQL_ADMIN_PASSWD=secret - cmake --build build - cd build - cmake -DTDB_ENABLE_COVERAGE=ON -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_HOST="127.0.0.1:4711" -DMYSQL_ADMIN_PASSWD=secret .. - make - ctest --output-on-failure # coverage - cd .. Loading Loading @@ -168,31 +158,57 @@ run-tests-with-mysql: - amd64 - docker - linux image: ubuntu:noble image: registry.gitlab.com/tango-controls/docker/ci/cpp/ubuntu-24.04:cppTango_version_main before_script: - apt-get update - sudo apt-get update - > apt-get install -y build-essential cmake sudo apt-get install -y libboost-test-dev libtango-dev libmysqlclient-dev mysql-server sudo - service mysql restart - sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'secret';" - echo "TANGO_HOST=127.0.0.1:10000" > /etc/tangorc - sudo service mysql restart - sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secret'; FLUSH PRIVILEGES;" - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - mkdir build - cmake -B build -S . -G Ninja -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret -DMYSQL_HOST="127.0.0.1" - cmake --build build - cd build - cmake -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret .. - make - ctest --output-on-failure artifacts: reports: junit: build/JU_*.xml test-db-upgrade: stage: test dependencies: [] tags: - amd64 - docker - linux image: registry.gitlab.com/tango-controls/docker/ci/cpp/debian12:cppTango_version_main before_script: - sudo apt-get update - > sudo apt-get install -y libboost-test-dev libmariadb-dev-compat mariadb-server - sudo service mariadb restart - sudo mysql -u root -e "SET PASSWORD = PASSWORD('secret');" - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - cmake -B build -S . -DBUILD_TESTING=OFF -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret - cd build - ./create_db.sh - mariadb-dump -u root -psecret --routines --events --compact tango > database-before.sql - mariadb -u root -psecret < update_db_from_5.23_to_5.24.sql - mariadb-dump -u root -psecret --routines --events --compact tango > database-after.sql - diff -Nur database-before.sql database-after.sql artifacts: paths: - build/database-before.sql - build/database-after.sql release_job: dependencies: [] tags: Loading README.md +7 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,13 @@ All tests always pass. Testing is currently not support on Windows. # Database upgrade todos for developers - Create a new update_db_from_A.BB_to_C.DD.sql.in. The SQL statements must be idempotent, meaning they should have the same result on applying them to already upgraded databases. - Add it to configure/CMakeLists.txt - Add it to the test-db-upgrade gitlab CI job # Release procedure - Check that all MRs and issues which were handled in the currently cycle Loading Loading
.gitlab-ci.yml +46 −30 Original line number Diff line number Diff line Loading @@ -106,33 +106,23 @@ run-tests-with-mariadb: - amd64 - docker - linux image: debian:bookworm image: registry.gitlab.com/tango-controls/docker/ci/cpp/debian12:cppTango_version_main before_script: - apt-get update - sudo apt-get update - > apt-get install -y build-essential cmake sudo apt-get install -y libboost-test-dev libtango-dev libmariadb-dev-compat mariadb-server pipx python3 sudo - pipx install gcovr==8.4 - pipx ensurepath - source ~/.bashrc - sudo cp ci/99_non-default-port.cnf /etc/mysql/mariadb.conf.d - sudo cp ci/debian.cnf /etc/mysql - service mariadb restart - sudo service mariadb restart - sudo mysql --defaults-file=/etc/mysql/debian.cnf -u root -e "SET PASSWORD = PASSWORD('secret');" - echo "TANGO_HOST=127.0.0.1:10000" > /etc/tangorc - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - mkdir build - cmake -B build -S . -G Ninja -DTDB_ENABLE_COVERAGE=ON -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_HOST="127.0.0.1:4711" -DMYSQL_ADMIN_PASSWD=secret - cmake --build build - cd build - cmake -DTDB_ENABLE_COVERAGE=ON -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_HOST="127.0.0.1:4711" -DMYSQL_ADMIN_PASSWD=secret .. - make - ctest --output-on-failure # coverage - cd .. Loading Loading @@ -168,31 +158,57 @@ run-tests-with-mysql: - amd64 - docker - linux image: ubuntu:noble image: registry.gitlab.com/tango-controls/docker/ci/cpp/ubuntu-24.04:cppTango_version_main before_script: - apt-get update - sudo apt-get update - > apt-get install -y build-essential cmake sudo apt-get install -y libboost-test-dev libtango-dev libmysqlclient-dev mysql-server sudo - service mysql restart - sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'secret';" - echo "TANGO_HOST=127.0.0.1:10000" > /etc/tangorc - sudo service mysql restart - sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secret'; FLUSH PRIVILEGES;" - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - mkdir build - cmake -B build -S . -G Ninja -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret -DMYSQL_HOST="127.0.0.1" - cmake --build build - cd build - cmake -DBUILD_TESTING=ON -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret .. - make - ctest --output-on-failure artifacts: reports: junit: build/JU_*.xml test-db-upgrade: stage: test dependencies: [] tags: - amd64 - docker - linux image: registry.gitlab.com/tango-controls/docker/ci/cpp/debian12:cppTango_version_main before_script: - sudo apt-get update - > sudo apt-get install -y libboost-test-dev libmariadb-dev-compat mariadb-server - sudo service mariadb restart - sudo mysql -u root -e "SET PASSWORD = PASSWORD('secret');" - echo "TANGO_HOST=127.0.0.1:10000" | sudo tee -a /etc/tangorc script: - cmake -B build -S . -DBUILD_TESTING=OFF -DMYSQL_ADMIN=root -DMYSQL_ADMIN_PASSWD=secret - cd build - ./create_db.sh - mariadb-dump -u root -psecret --routines --events --compact tango > database-before.sql - mariadb -u root -psecret < update_db_from_5.23_to_5.24.sql - mariadb-dump -u root -psecret --routines --events --compact tango > database-after.sql - diff -Nur database-before.sql database-after.sql artifacts: paths: - build/database-before.sql - build/database-after.sql release_job: dependencies: [] tags: Loading
README.md +7 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,13 @@ All tests always pass. Testing is currently not support on Windows. # Database upgrade todos for developers - Create a new update_db_from_A.BB_to_C.DD.sql.in. The SQL statements must be idempotent, meaning they should have the same result on applying them to already upgraded databases. - Add it to configure/CMakeLists.txt - Add it to the test-db-upgrade gitlab CI job # Release procedure - Check that all MRs and issues which were handled in the currently cycle Loading