Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.78 KiB
stages:
  - test
  - build
  - release

# GitLab provides a template to ensure pipelines run only for branches and tags, not for merge requests
# This prevents duplicate pipelines in merge requests.
# See https://docs.gitlab.com/ee/ci/troubleshooting.html#job-may-allow-multiple-pipelines-to-run-for-a-single-action
include:
  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'

variables:
  VERSION: commit-$CI_COMMIT_SHORT_SHA
  DEBIAN_FRONTEND: non-interactive

test:
  image: python:slim

  stage: test
  cache:
    paths:
      - .cache/pip

  variables:
    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
    ARKINDEX_API_SCHEMA_URL: schema.yml

  before_script:
    - pip install tox

    # Install curl
    - apt-get update -q -y && apt-get install -q -y --no-install-recommends curl

    # Download OpenAPI schema from last backend build
    - curl https://assets.teklia.com/arkindex/openapi.yml > schema.yml

  except:
    - schedules

  script:
    - tox -- --junitxml=test-report.xml --durations=50

lint:
  image: python:slim

  cache:
    paths:
      - .cache/pip
      - .cache/pre-commit

  variables:
    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
    PRE_COMMIT_HOME: "$CI_PROJECT_DIR/.cache/pre-commit"

  before_script:
    - pip install pre-commit

    # Install git
    - apt-get update -q -y && apt-get install -q -y --no-install-recommends git

  except:
    - schedules

  script:
    - pre-commit run -a

docker-build:
  stage: build
  image: docker:24.0.6
  services: