stages:
- Coding Standards
- Unit-Tests with DB

PSR2 CS Test:
  stage: Coding Standards
  tags:
  - xenial
  script:
  - phpcs --report-width=auto --report-full --report-gitblame --report-summary -p --standard=PSR2 --extensions=php --encoding=utf-8 -w -s library/Director/ library/vendor/ipl/ application/ *.php test

CentOS 7/MySQL:
  stage: Unit-Tests with DB
  tags:
  - centos7
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director MySQL TestDB"
  before_script:
  - mysql -u root -e "CREATE DATABASE $DIRECTOR_TESTDB"
  after_script:
  - mysql -u root -e "DROP DATABASE $DIRECTOR_TESTDB"
  script:
  - phpunit --verbose
  
CentOS 7/PostgreSQL:
  stage: Unit-Tests with DB
  tags:
  - centos7
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director PostgreSQL TestDB"
    DIRECTOR_TESTDB_USER: "director_${CI_BUILD_ID}_${CI_RUNNER_ID}"
  before_script:
  - psql postgres -q -c "CREATE DATABASE $DIRECTOR_TESTDB WITH ENCODING 'UTF8';"
  - psql $DIRECTOR_TESTDB -q -c "CREATE USER $DIRECTOR_TESTDB_USER WITH PASSWORD 'testing'; GRANT ALL PRIVILEGES ON DATABASE $DIRECTOR_TESTDB TO $DIRECTOR_TESTDB_USER; CREATE EXTENSION pgcrypto;"
  after_script:
  - psql postgres -c "DROP DATABASE $DIRECTOR_TESTDB"
  - psql postgres -c "DROP USER $DIRECTOR_TESTDB_USER"
  script:
  - phpunit --verbose

#CentOS 6/MySQL:
#  stage: Unit-Tests with DB
#  tags:
#  - centos6
#  - director
#  variables:
#    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
#    DIRECTOR_TESTDB_RES: "Director MySQL TestDB"
#  before_script:
#  - mysql -u root -e "CREATE DATABASE $DIRECTOR_TESTDB"
#  after_script:
#  - mysql -u root -e "DROP DATABASE $DIRECTOR_TESTDB"
#  script:
#  - phpunit

Jessie/MySQL:
  stage: Unit-Tests with DB
  tags:
  - jessie
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director MySQL TestDB"
  before_script:
  - mysql -u root -e "CREATE DATABASE $DIRECTOR_TESTDB"
  after_script:
  - mysql -u root -e "DROP DATABASE $DIRECTOR_TESTDB"
  script:
  - phpunit --verbose
  
Jessie/PostgreSQL:
  stage: Unit-Tests with DB
  tags:
  - jessie
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director PostgreSQL TestDB"
    DIRECTOR_TESTDB_USER: "director_${CI_BUILD_ID}_${CI_RUNNER_ID}"
  before_script:
  - psql postgres -q -c "CREATE DATABASE $DIRECTOR_TESTDB WITH ENCODING 'UTF8';"
  - psql $DIRECTOR_TESTDB -q -c "CREATE USER $DIRECTOR_TESTDB_USER WITH PASSWORD 'testing'; GRANT ALL PRIVILEGES ON DATABASE $DIRECTOR_TESTDB TO $DIRECTOR_TESTDB_USER; CREATE EXTENSION pgcrypto;"
  after_script:
  - psql postgres -c "DROP DATABASE $DIRECTOR_TESTDB"
  - psql postgres -c "DROP USER $DIRECTOR_TESTDB_USER"
  script:
  - phpunit --verbose

Xenial/MySQL:
  stage: Unit-Tests with DB
  tags:
  - xenial
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director MySQL TestDB"
  before_script:
  - mysql -u root -e "CREATE DATABASE $DIRECTOR_TESTDB"
  after_script:
  - mysql -u root -e "DROP DATABASE $DIRECTOR_TESTDB"
  script:
  - phpunit --verbose
  
Xenial/PostgreSQL:
  stage: Unit-Tests with DB
  tags:
  - ubuntu
  - director
  variables:
    DIRECTOR_TESTDB: "director_test_${CI_BUILD_ID}_${CI_RUNNER_ID}"
    DIRECTOR_TESTDB_RES: "Director PostgreSQL TestDB"
    DIRECTOR_TESTDB_USER: "director_${CI_BUILD_ID}_${CI_RUNNER_ID}"
  before_script:
  - psql postgres -q -c "CREATE DATABASE $DIRECTOR_TESTDB WITH ENCODING 'UTF8';"
  - psql $DIRECTOR_TESTDB -q -c "CREATE USER $DIRECTOR_TESTDB_USER WITH PASSWORD 'testing'; GRANT ALL PRIVILEGES ON DATABASE $DIRECTOR_TESTDB TO $DIRECTOR_TESTDB_USER; CREATE EXTENSION pgcrypto;"
  after_script:
  - psql postgres -c "DROP DATABASE $DIRECTOR_TESTDB"
  - psql postgres -c "DROP USER $DIRECTOR_TESTDB_USER"
  script:
  - phpunit --verbose