diff .circleci/config.yml @ 6115:7017ea98930f

updated circleci config to test on both ubuntu and debian
author Christof Meerwald <cmeerw@cmeerw.org>
date Sat, 29 Feb 2020 15:17:28 +0000
parents 851d4306300d
children a327e2bdc02d
line wrap: on
line diff
--- a/.circleci/config.yml	Fri Feb 28 23:27:59 2020 -0500
+++ b/.circleci/config.yml	Sat Feb 29 15:17:28 2020 +0000
@@ -1,16 +1,21 @@
 version: 2
 jobs:
-  build:
+  ubuntu:
     docker:
       - image: circleci/buildpack-deps:18.04
 
-      - image: circleci/postgres:9.6-alpine-ram
+      - image: circleci/postgres:10-alpine-ram
+        environment:
+          POSTGRES_USER: postgres
+          POSTGRES_DB: circle_test
 
       - image: circleci/mysql:5.7-ram
         environment:
           MYSQL_ALLOW_EMPTY_PASSWORD=true
           MYSQL_ROOT_HOST=%
 
+    resource_class: small
+
     working_directory: ~/repo
 
     steps:
@@ -20,19 +25,12 @@
           name: install packages
           command: |
             sudo apt-get update
-            sudo apt-get install -y libgpgme-dev mysql-client-core-5.7 postgresql-client python3-gpg python3-mysqldb python3-pip python3-psycopg2 python3-pytest python3-pytest-cov python3-tz python3-venv python3-whoosh python3-xapian swig
-
-      - run:
-          name: install dependencies
-          command: |
-            python3 -m venv venv
-            . venv/bin/activate
-            pip3 install codecov
+            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://root@localhost/circle_test -c "CREATE ROLE rounduptest WITH CREATEDB LOGIN PASSWORD 'rounduptest';"
+            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 "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
@@ -43,7 +41,6 @@
       - run:
           name: run tests
           command: |
-            . venv/bin/activate
             py.test-3 -v test/ --cov=roundup
           environment:
             MYSQL_HOST: 127.0.0.1
@@ -51,4 +48,69 @@
       - run:
           name: run coverage
           command: |
-            codecov
+            python3-coverage html -i
+
+      - store_artifacts:
+          path: htmlcov
+          destination: roundup-ubuntu
+
+  debian:
+    docker:
+      - image: circleci/buildpack-deps:buster
+
+      - image: circleci/postgres:11-alpine-ram
+        environment:
+          POSTGRES_USER: postgres
+          POSTGRES_DB: circle_test
+
+      - image: circleci/mariadb:10.3-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-markdown2 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 "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
+          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-debian
+
+workflows:
+  version: 2
+  test_all:
+    jobs:
+      - ubuntu
+      - debian

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