Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.14 KiB
Newer Older
Remi Cresson's avatar
Remi Cresson committed
default:
  image: python:3.8-slim

Remi Cresson's avatar
Remi Cresson committed
workflow:
  rules:
Remi Cresson's avatar
Remi Cresson committed
    - if: $CI_MERGE_REQUEST_ID
    - if: $CI_COMMIT_BRANCH == 'main'

Remi Cresson's avatar
Remi Cresson committed
stages:
  - Static Analysis
Remi Cresson's avatar
Remi Cresson committed
  - Install
  - Documentation
Remi Cresson's avatar
Remi Cresson committed
  - Test
Remi Cresson's avatar
Remi Cresson committed
  - Ship
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
# ------------------------------ Static analysis ------------------------------
Remi Cresson's avatar
Remi Cresson committed

.static_analysis_base:
  stage: Static Analysis
  allow_failure: true

flake8:
  extends: .static_analysis_base
  script:
Remi Cresson's avatar
Remi Cresson committed
    - pip install flake8
Remi Cresson's avatar
Remi Cresson committed
    - flake8 $PWD/dinamis_sdk
Remi Cresson's avatar
Remi Cresson committed

pylint:
  extends: .static_analysis_base
  script:
Remi Cresson's avatar
Remi Cresson committed
    - pip install pylint appdirs requests pystac pystac-client pydantic urllib3 qrcode
    - pylint $PWD/dinamis_sdk --disable=W0718,W0603,R0914,C0415 --ignore=examples
Remi Cresson's avatar
Remi Cresson committed

codespell:
  extends: .static_analysis_base
Remi Cresson's avatar
Remi Cresson committed
  script: 
Remi Cresson's avatar
Remi Cresson committed
    - pip install codespell
    - codespell dinamis_sdk docs README.md
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
pydocstyle:
  extends: .static_analysis_base
  script:
    - pip install pydocstyle
    - pydocstyle $PWD/dinamis_sdk

# ------------------------------- Install -------------------------------------
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
pip_install:
  stage: Install
Remi Cresson's avatar
Remi Cresson committed
  script:
Remi Cresson's avatar
Remi Cresson committed
    - pip install .

Remi Cresson's avatar
Remi Cresson committed
# --------------------------------- Doc ---------------------------------------
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
.doc_base:
  stage: Documentation
Remi Cresson's avatar
Remi Cresson committed
  before_script:
Remi Cresson's avatar
Remi Cresson committed
    - pip install -r doc/doc_requirements.txt
Remi Cresson's avatar
Remi Cresson committed
  artifacts:
    paths:
      - public
      - public_test
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
test:
  extends: .doc_base
Remi Cresson's avatar
Remi Cresson committed
  except:
    - main
Remi Cresson's avatar
Remi Cresson committed
  script:
Remi Cresson's avatar
Remi Cresson committed
    - mkdocs build --site-dir public_test
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
pages:
  extends: .doc_base
Remi Cresson's avatar
Remi Cresson committed
  only:
    - main
Remi Cresson's avatar
Remi Cresson committed
  script:
    - mkdocs build --site-dir public
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
# --------------------------------- Test --------------------------------------

Tests:
  stage: Test
Remi Cresson's avatar
Remi Cresson committed
  except:
    - main
Remi Cresson's avatar
Remi Cresson committed
  before_script:
    - pip install .
    - pip install pystac-client
  script:
    - python tests/test_spot-6-7-drs.py
    - python tests/test_super-s2.py
Cresson Remi's avatar
Cresson Remi committed
    - python tests/test_push.py
Remi Cresson's avatar
Remi Cresson committed

Remi Cresson's avatar
Remi Cresson committed
# --------------------------------- Ship --------------------------------------

pypi:
  stage: Ship
  only:
   - main
  before_script:
   - python3 -m pip install --upgrade build twine
  script:
   - python3 -m build
  after_script:
Cresson Remi's avatar
Cresson Remi committed
   - python3 -m twine upload --repository-url https://upload.pypi.org/legacy/ --non-interactive --verbose -u __token__ -p $pypi_token dist/*