Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.13 KiB
Newer Older
Alán Muñoz's avatar
Alán Muñoz committed
image: python:3.7

cache:
    key: "project-${CI_JOB_NAME}"
    paths:
      - .cache/pip
      - .venv
    key:
      files:
        - poetry.lock

Alán Muñoz's avatar
Alán Muñoz committed
stages:
  - test
  - check
Alán Muñoz's avatar
Alán Muñoz committed

Alán Muñoz's avatar
Alán Muñoz committed
before_script:
  - test -e $HOME/.poetry/bin/ || curl -sSL https://install.python-poetry.org | python3 -
Alán Muñoz's avatar
Alán Muñoz committed
  - export PATH="$PATH:$HOME/.local/bin/"
  - poetry --version
  - poetry config virtualenvs.in-project true
Alán Muñoz's avatar
Alán Muñoz committed
  - pip install --upgrade pip
  - git remote rm origin && git remote add origin https://${ACCESS_TOKEN_NAME}:${ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
Alán Muñoz's avatar
Alán Muñoz committed
  - git config pull.rebase false
  - git pull origin HEAD:master
  - if [ ${var+TRIGGER_PYPI_NAME} ]; then echo "Pipeline triggered by ${TRIGGER_PYPI_NAME}"; poetry update ${TRIGGER_PYPI_NAME}; fi
Alán Muñoz's avatar
Alán Muñoz committed
  - rm -f poetry.lock
Alán Muñoz's avatar
Alán Muñoz committed
  - poetry install -vv
  # - poetry export -f requirements.txt --output requirements.txt
  # - sed '/^zeroc-ice/,/^[z.*]/{/z.*/!d}' requirements.txt | grep -v zeroc-ice > nozice.txt
  # - pip install -r nozice.txt --no-deps && pip install pytest black mypy
Alán Muñoz's avatar
Alán Muñoz committed

Alán Muñoz's avatar
Alán Muñoz committed
Unit test:
  stage: test
Alán Muñoz's avatar
Alán Muñoz committed
  # allow_failure: true
Alán Muñoz's avatar
Alán Muñoz committed
  script:
Alán Muñoz's avatar
Alán Muñoz committed
    - apt update && apt install ffmpeg libsm6 libxext6  -y
    - poetry run pytest ./tests/
Alán Muñoz's avatar
Alán Muñoz committed

Alán Muñoz's avatar
Alán Muñoz committed
Python Code Lint:
  stage: check
  script:
    - poetry run black .
Alán Muñoz's avatar
Alán Muñoz committed

Static Type:
  stage: check
Alán Muñoz's avatar
Alán Muñoz committed
  allow_failure: true
Alán Muñoz's avatar
Alán Muñoz committed
  script:
    - poetry run mypy . --exclude 'setup\.py$'
Alán Muñoz's avatar
Alán Muñoz committed
    # We can remove the flag once this is resolved https://github.com/pypa/setuptools/issues/2345

Alán Muñoz's avatar
Alán Muñoz committed
  script:
Alán Muñoz's avatar
Alán Muñoz committed
    - poetry version ${BUMP_RULE}
    - git config --global user.email ${GITLAB_USER_EMAIL}
    - git config --global user.name ${GITLAB_USER_NAME}
    - git add pyproject.toml poetry.lock
Alán Muñoz's avatar
Alán Muñoz committed
    - git commit -m "Bump version"
    # - git pull  && git push -o ci.skip origin HEAD:master && poetry publish --build --username ${PYPI_USER} --password ${PYPI_PASSWORD}
Alán Muñoz's avatar
Alán Muñoz committed
    # - git pull  && git push -o ci.skip origin HEAD:master
    - echo "TRIGGER_PYPI_NAME=$(cat pyproject.toml | grep '^name =' | head -n 1 | cut -f3 -d' ' | tr -d \")" >> build.env
  artifacts:
    reports:
      dotenv: build.env
Alán Muñoz's avatar
Alán Muñoz committed
  only:
    - master
  needs:
    job: Unit test

## Custom stages ##