Luc Didry e41b08
image: hatsoftwares/lufi-test-ci:latest
Luc Didry e41b08
stages:
Luc Didry e41b08
  - podcheck
Luc Didry e41b08
  - carton
Luc Didry e41b08
  - carton_bdd
Luc Didry e41b08
  - tests
Luc Didry e41b08
before_script:
Luc Didry e41b08
  - rm -f *db
Luc Didry e41b08
variables:
Luc Didry e41b08
  POSTGRES_DB: lufi_db
Luc Didry e41b08
  POSTGRES_USER: lufi
Luc Didry e41b08
  POSTGRES_PASSWORD: lufi_pwd
Luc Didry e41b08
  MYSQL_DATABASE: lufi_db
Luc Didry e41b08
  MYSQL_USER: lufi
Luc Didry e41b08
  MYSQL_PASSWORD: lufi_pwd
Luc Didry e41b08
  MYSQL_ROOT_PASSWORD: root
Luc Didry e41b08
Luc Didry e41b08
### Jobs templates
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
.carton_bdd_template: &carton_bdd_definition
Luc Didry e41b08
  stage: carton_bdd
Luc Didry e41b08
  retry: 2
Luc Didry e41b08
  artifacts:
Luc Didry e41b08
    paths:
Luc Didry e41b08
      - local/
Luc Didry e41b08
    expire_in: 1 week
Luc Didry e41b08
  dependencies:
Luc Didry e41b08
    - carton
Luc Didry e41b08
.sqlite_template: &sqlite_definition
Luc Didry e41b08
  stage: tests
Luc Didry e41b08
  retry: 2
Luc Didry e41b08
  dependencies:
Luc Didry e41b08
    - carton_sqlite
Luc Didry e41b08
  services:
Luc Didry e41b08
    - name: rroemhild/test-openldap
Luc Didry e41b08
      alias: rroemhild-test-openldap
Luc Didry e41b08
  coverage: '/Total.* (\d+\.\d+)$/'
Luc Didry e41b08
.pg_template: &pg_definition
Luc Didry e41b08
  stage: tests
Luc Didry e41b08
  retry: 2
Luc Didry e41b08
  dependencies:
Luc Didry e41b08
    - carton_postgresql
Luc Didry e41b08
  services:
Luc Didry e41b08
    - name: postgres:9.6
Luc Didry e41b08
      alias: postgres
Luc Didry e41b08
    - name: rroemhild/test-openldap
Luc Didry e41b08
      alias: rroemhild-test-openldap
Luc Didry e41b08
  coverage: '/Total .*(\d+\.\d+)$/'
Luc Didry e41b08
.mysql_template: &mysql_definition
Luc Didry e41b08
  stage: tests
Luc Didry e41b08
  retry: 2
Luc Didry e41b08
  dependencies:
Luc Didry e41b08
    - carton_mysql
Luc Didry e41b08
  services:
Luc Didry e41b08
    - name: mariadb:10.1
Luc Didry e41b08
      alias: mariadb
Luc Didry e41b08
    - name: rroemhild/test-openldap
Luc Didry e41b08
      alias: rroemhild-test-openldap
Luc Didry e41b08
  coverage: '/Total .*(\d+\.\d+)$/'
Luc Didry e41b08
Luc Didry e41b08
### Podcheck
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
podcheck:
Luc Didry e41b08
  stage: podcheck
Luc Didry e41b08
  script:
Luc Didry e41b08
    - make podcheck
Luc Didry e41b08
Luc Didry e41b08
### Install common dependencies
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
carton:
Luc Didry e41b08
  stage: carton
Luc Didry e41b08
  artifacts:
Luc Didry e41b08
    paths:
Luc Didry e41b08
      - local/
Luc Didry e41b08
    expire_in: 1 week
Luc Didry e41b08
  dependencies: []
Luc Didry e41b08
  script:
Luc Didry 44507c
    - carton install --deployment --without=sqlite --without=postgresql --without=mysql
Luc Didry e41b08
  when: always
Luc Didry e41b08
  retry: 2
Luc Didry e41b08
Luc Didry e41b08
### Install DB related dependencies
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
carton_sqlite:
Luc Didry e41b08
  <<: *carton_bdd_definition
Luc Didry e41b08
  script:
Luc Didry 44507c
    - carton install --deployment --without=postgresql --without=mysql
Luc Didry e41b08
carton_postgresql:
Luc Didry e41b08
  <<: *carton_bdd_definition
Luc Didry e41b08
  script:
Luc Didry 44507c
    - carton install --deployment --without=sqlite --without=mysql
Luc Didry 44507c
carton_mysql:
Luc Didry 44507c
  <<: *carton_bdd_definition
Luc Didry 44507c
  script:
Luc Didry 44507c
    - carton install --deployment --without=sqlite --without=postgresql
Luc Didry e41b08
Luc Didry e41b08
### SQLite tests
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
sqlite:
Luc Didry e41b08
  <<: *sqlite_definition
Luc Didry e41b08
  script:
Luc Didry e41b08
    - MOJO_CONFIG=t/sqlite.conf make test
Luc Didry e41b08
    - MOJO_CONFIG=t/sqlite.conf make cover
Luc Didry e41b08
Luc Didry e41b08
### PostgreSQL tests
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry e41b08
postgresql:
Luc Didry e41b08
  <<: *pg_definition
Luc Didry e41b08
  script:
Luc Didry e41b08
    - MOJO_CONFIG=t/postgresql.conf make test
Luc Didry e41b08
    - MOJO_CONFIG=t/postgresql.conf make cover
Luc Didry e41b08
Luc Didry e41b08
### MySQL tests
Luc Didry e41b08
##
Luc Didry e41b08
#
Luc Didry 44507c
mysql:
Luc Didry 44507c
  <<: *mysql_definition
Luc Didry 44507c
  script:
Luc Didry 44507c
    - MOJO_CONFIG=t/mysql.conf make test
Luc Didry 44507c
    - MOJO_CONFIG=t/mysql.conf make cover