diff .circleci/config.yml @ 6153:a327e2bdc02d

updated circleci config to also test on Ubuntu 20.04
author Christof Meerwald <cmeerw@cmeerw.org>
date Fri, 01 May 2020 18:51:01 +0100
parents 7017ea98930f
children 56554e9f5c51
line wrap: on
line diff
--- a/.circleci/config.yml	Fri May 01 17:13:15 2020 +0200
+++ b/.circleci/config.yml	Fri May 01 18:51:01 2020 +0100
@@ -2,6 +2,57 @@
 jobs:
   ubuntu:
     docker:
+      - image: circleci/buildpack-deps:20.04
+
+      - image: circleci/postgres:12-alpine-ram
+        environment:
+          POSTGRES_USER: postgres
+          POSTGRES_DB: circle_test
+
+      - image: circleci/mysql:8.0-ram
+        environment:
+          MYSQL_ALLOW_EMPTY_PASSWORD=true
+          MYSQL_ROOT_HOST=%
+
+    resource_class: small
+
+    working_directory: ~/repo
+
+    steps:
+      - checkout
+
+      - run:
+          name: install packages
+          command: |
+            sudo apt-get update
+            sudo apt-get install -y libgpgme-dev default-mysql-client-core postgresql-client python3-docutils python3-gpg python3-jwt python3-markdown python3-mistune python3-mysqldb python3-pip python3-psycopg2 python3-pytest python3-pytest-cov python3-tz python3-venv python3-whoosh python3-xapian swig
+
+      - run:
+          name: setup databases
+          command: |
+            psql -d postgresql://postgres@localhost/circle_test -c "CREATE ROLE rounduptest WITH CREATEDB LOGIN PASSWORD 'rounduptest';"
+            mysql -h 127.0.0.1 -u root -e "CREATE USER 'rounduptest'@'127.0.0.1' IDENTIFIED BY 'rounduptest'; GRANT ALL ON rounduptest.* TO 'rounduptest'@'127.0.0.1';"
+            # patch host to 127.0.0.1 to force TCP connection to MySQL
+            sed -i -e 's/\(config[.]RDBMS_HOST =\) "localhost"/\1 "127.0.0.1"/' test/db_test_base.py
+
+      - run:
+          name: run tests
+          command: |
+            py.test-3 -v test/ --cov=roundup
+          environment:
+            MYSQL_HOST: 127.0.0.1
+
+      - run:
+          name: run coverage
+          command: |
+            python3-coverage html -i
+
+      - store_artifacts:
+          path: htmlcov
+          destination: roundup-ubuntu
+
+  ubuntu-old:
+    docker:
       - image: circleci/buildpack-deps:18.04
 
       - image: circleci/postgres:10-alpine-ram
@@ -34,9 +85,6 @@
             mysql -h 127.0.0.1 -u root -e "GRANT ALL ON rounduptest.* TO rounduptest@'127.0.0.1' IDENTIFIED BY \"rounduptest\";"
             # patch host to 127.0.0.1 to force TCP connection to MySQL
             sed -i -e 's/\(config[.]RDBMS_HOST =\) "localhost"/\1 "127.0.0.1"/' test/db_test_base.py
-            # HACK: workaround mysql bug: http://bugs.mysql.com/bug.php?id=74901
-            #   needed for test_mysql.mysqlDBTest.testFilteringSpecialChars
-            sed -i -e 's/CREATE DATABASE \%s/CREATE DATABASE \%s COLLATE utf8_general_ci/' roundup/backends/back_mysql.py
 
       - run:
           name: run tests
@@ -52,7 +100,7 @@
 
       - store_artifacts:
           path: htmlcov
-          destination: roundup-ubuntu
+          destination: roundup-ubuntu-old
 
   debian:
     docker:
@@ -88,9 +136,6 @@
             mysql -h 127.0.0.1 -u root -e "GRANT ALL ON rounduptest.* TO rounduptest@'127.0.0.1' IDENTIFIED BY \"rounduptest\";"
             # patch host to 127.0.0.1 to force TCP connection to MySQL
             sed -i -e 's/\(config[.]RDBMS_HOST =\) "localhost"/\1 "127.0.0.1"/' test/db_test_base.py
-            # HACK: workaround mysql bug: http://bugs.mysql.com/bug.php?id=74901
-            #   needed for test_mysql.mysqlDBTest.testFilteringSpecialChars
-            sed -i -e 's/CREATE DATABASE \%s/CREATE DATABASE \%s COLLATE utf8_general_ci/' roundup/backends/back_mysql.py
 
       - run:
           name: run tests
@@ -113,4 +158,5 @@
   test_all:
     jobs:
       - ubuntu
+      - ubuntu-old
       - debian

Roundup Issue Tracker: http://roundup-tracker.org/