stages:
  - test
  - lint

tests:
  image: "ruby:3.3.10"
  stage: test
  services:
    - postgres:14.19
  cache:
    key: consul
    paths:
      - vendor/
  variables:
    DB_HOST: postgres
    PGUSER: consul
    PGPASSWORD: password
    POSTGRES_USER: consul
    POSTGRES_PASSWORD: password
    RAILS_ENV: test
    TEST_COVERAGE: 1
  parallel: 5
  script:
    - apt-get update && apt-get install -y nodejs npm chromium
    - for i in config/*.example; do cp "$i" "${i/.example}"; done
    - bundle --without development
    - npm clean-install
    - bundle exec rake db:setup
    - bundle exec rake assets:precompile > /dev/null 2>&1
    - bin/knapsack_pro_rspec
  artifacts:
    when: on_failure
    paths:
      - tmp/screenshots/

# To make this job work, create a Personal Access Token with permissions
# to comment on your repository and add a variable named
# PRONTO_GITLAB_API_PRIVATE_TOKEN to your repository CI/CD settings
# giving it the value of the Personal Access Token
linters:
  image: "ruby:3.3.10"
  stage: lint
  cache:
    key: consul
    paths:
      - vendor/
  only:
    - merge_requests
  script:
    - apt-get update && apt-get install -y nodejs cmake pkg-config
    - bundle --without test
    - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    - bundle exec pronto run -f gitlab_mr -c origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
