image: hatsoftwares/lufi-test-ci:buster stages: - publish_changelog - pouet_it - carton - carton_bdd - tests variables: POSTGRES_DB: lufi_db POSTGRES_USER: lufi POSTGRES_PASSWORD: lufi_pwd MYSQL_DATABASE: lufi_db MYSQL_USER: lufi MYSQL_PASSWORD: lufi_pwd MYSQL_ROOT_PASSWORD: root ### Jobs templates ## # .retry: &retry retry: 2 except: - tags .carton_bdd_template: &carton_bdd_definition <<: *retry stage: carton_bdd cache: key: "$CI_COMMIT_REF_NAME" paths: - local/ policy: pull artifacts: paths: - local.tar expire_in: 3 hours needs: - carton after_script: - tar cf local.tar local/ .tests_template: &tests_template <<: *retry stage: tests coverage: '/Total.* (\d+\.\d+)$/' before_script: - tar xf local.tar && rm local.tar - which mariadb_config && cd $(dirname $(which mariadb_config)) && ln -s mariadb_config mysql_config - cd $CI_PROJECT_DIR - pwd script: - MOJO_CONFIG="t/${CI_JOB_NAME}.conf" make test - MOJO_CONFIG="t/${CI_JOB_NAME}.conf" make cover .sqlite_template: &sqlite_definition <<: *tests_template needs: - carton_sqlite services: - name: rroemhild/test-openldap alias: rroemhild-test-openldap - name: swiftstack/picoswiftstack alias: swiftstack-picoswiftstack .pg_template: &pg_definition <<: *tests_template needs: - carton_postgresql services: - name: postgres:11 alias: postgres - name: rroemhild/test-openldap alias: rroemhild-test-openldap - name: swiftstack/picoswiftstack alias: swiftstack-picoswiftstack .mysql_template: &mysql_definition <<: *tests_template needs: - carton_mysql services: - name: mariadb:10.3 alias: mariadb - name: rroemhild/test-openldap alias: rroemhild-test-openldap - name: swiftstack/picoswiftstack alias: swiftstack-picoswiftstack ### Publish tag changelog and create a toot ## # include: - 'https://framagit.org/fiat-tux/gitlabci-snippets/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/publish_changelog.gitlab-ci.yml' - 'https://framagit.org/fiat-tux/gitlabci-snippets/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/pouet-it-from-ci.gitlab-ci.yml' ### Podcheck ## # podcheck: stage: carton script: - make podcheck except: - tags ### Cpanfile.snapshot ## Used to get a cpanfile.snapshot from a fresh server (not like my dev VM) # #cpanfile_snapshot: # stage: carton # script: # - rm cpanfile.snapshot # - which mariadb_config && cd $(dirname $(which mariadb_config)) && ln -s mariadb_config mysql_config # - carton install # - cat cpanfile.snapshot # except: # - tags ### Install common dependencies ## # carton: <<: *retry stage: carton cache: key: "$CI_COMMIT_REF_NAME" paths: - local/ script: - carton install --deployment --without=sqlite --without=postgresql --without=mysql ### Install DB related dependencies ## # carton_sqlite: <<: *carton_bdd_definition script: - carton install --deployment --without=postgresql --without=mysql carton_postgresql: <<: *carton_bdd_definition script: - carton install --deployment --without=sqlite --without=mysql carton_mysql: <<: *carton_bdd_definition before_script: - which mariadb_config && cd $(dirname $(which mariadb_config)) && ln -s mariadb_config mysql_config - cd $CI_PROJECT_DIR script: - carton install --deployment --without=sqlite --without=postgresql ### Tests ## # sqlite: <<: *sqlite_definition postgresql: <<: *pg_definition mysql: <<: *mysql_definition