# Use latest Ubuntu LTS docker image.
image: ubuntu:xenial

variables:
  BUILD_DIR: "build"
  INSTALL_PREFIX: "copyq"
  SCREENSHOT_DIR: "screenshots"
  TESTS_LOG_DIR: "logs"

build:
  stage: build

  before_script:
    - utils/gitlab/build-before_script.sh

  script:
    - utils/gitlab/build-script.sh

  # Upload installed application.
  artifacts:
    paths:
      - "$INSTALL_PREFIX"

  cache:
    paths:
      - build

# Run simple tests (doesn't require GUI)
test:
  stage: test

  before_script:
    - utils/gitlab/test-before_script.sh

  script:
    - utils/gitlab/test-script.sh

  dependencies:
    - build

# GUI tests (requires X11)
test_gui:
  stage: test

  before_script:
    - utils/gitlab/test_gui-before_script.sh

  script:
    - utils/gitlab/test_gui-script.sh

  # Upload screenshots on failure.
  artifacts:
    when: on_failure
    paths:
      - "$SCREENSHOT_DIR"
      - "$TESTS_LOG_DIR"

  dependencies:
    - build
