# Copyright (c) 2016 Tuncer Ayaz
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

variables:
  GIT_DEPTH: "3"

cache:
  key: $CI_PROJECT_PATH
  paths:
    - .rebar/triq_*_plt

.build_job_template: &build_job_definition
  image: erlang:17
  stage: build
  script:
    - make
    - ./rebar check-plt || ./rebar -vv build-plt
    - ./rebar -vv dialyze
    - rm .rebar/erlcinfo

.artifact_paths_template: &artifact_paths_defitinion
  paths:
    - ebin
    - doc

default-build:
  <<: *build_job_definition
  artifacts:
    name: "$CI_PROJECT_NAME-ci-${CI_BUILD_REF_NAME}"
    <<: *artifact_paths_defitinion
    # Temporary artifacts for non-release builds are removed after a week
    # because they are just for use in test jobs.
    expire_in: 1 week

release:
  <<: *build_job_definition
  artifacts:
    name: "$CI_PROJECT_NAME-${CI_BUILD_REF_NAME}"
    <<: *artifact_paths_defitinion
  only:
    - tags

.test_job_template: &test_job_definition
  stage: test
  script:
    - make eunit
  dependencies:
    - default-build

test:17:
  <<: *test_job_definition
  image: erlang:17

test:18:
  <<: *test_job_definition
  image: erlang:18

test:19:
  <<: *test_job_definition
  image: erlang:19
