Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.04 KiB
Newer Older
image: irmb/virtualfluids-python-deps
Soeren Peters's avatar
Soeren Peters committed

stages:
  - build
  - deploy
Sven Marcus's avatar
Sven Marcus committed
  - release
Soeren Peters's avatar
Soeren Peters committed

build:
  stage: build
Sven Marcus's avatar
Sven Marcus committed
  tags:
    - finrod
  cache:
    key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
    paths:
      - _skbuild

      - _skbuild/
      - Python/venv

  before_script:
    - python3 -m venv --system-site-packages Python/venv
    - source Python/venv/bin/activate

  script:
    - python3 setup.py install


build_singularity_image:
  stage: build
  rules:
    - if: $CI_COMMIT_TAG

  artifacts:
    paths:
      - Containers/VirtualFluidsOpenMPI.sif

  script:
    - singularity build Containers/VirtualFluidsOpenMPI.sif Containers/VirtualFluidsOpenMPI.def
    - ls -sh Containers/VirtualFluidsOpenMPI.sif


virtual_fluids_basics_test:
  stage: test
Soeren Peters's avatar
Soeren Peters committed
  before_script:
    - export VF_UNITTESTS=$(find _skbuild -name basicsTests)
Soeren Peters's avatar
Soeren Peters committed

  script:
    - $VF_UNITTESTS
test_python_bindings:
  artifacts:
    when: on_failure
    paths:
      - output/mq/mq10000/

    - export PYTHONPATH="Python"
    - source Python/venv/bin/activate
Sven Marcus's avatar
Sven Marcus committed
    - python3 -m unittest discover -s Python -v

deploy_to_phoenix:
  stage: deploy
  needs: ["build"]
  before_script:
    - eval "$(ssh-agent -s)"
    - ssh-add $SSH_PRIVATE_KEY
    - pip3 install ansible
Sven Marcus's avatar
Sven Marcus committed

  script:
    - ansible-playbook -i ansible/hosts.cfg ansible/playbook.yml -u $REMOTE_USER

  parallel:
    matrix:
      - ANSIBLE_MATRIX: 0
        REMOTE_USER:
          - y0054816
Sven Marcus's avatar
Sven Marcus committed
create_release:
Sven Marcus's avatar
Sven Marcus committed
  image: registry.gitlab.com/gitlab-org/release-cli:latest
Sven Marcus's avatar
Sven Marcus committed
  stage: release
Sven Marcus's avatar
Sven Marcus committed
  needs: ["build_singularity_image"]
Sven Marcus's avatar
Sven Marcus committed
  rules:
    - if: $CI_COMMIT_TAG

  script:
    - echo "Creating release with tag $CI_COMMIT_TAG"
Sven Marcus's avatar
Sven Marcus committed
    - release-cli create --name "VirtualFluids $CI_COMMIT_TAG" \
      --description "VirtualFluids CFD Simulator" \
      --tag-name "$CI_COMMIT_TAG" \
      --ref "$CI_COMMIT_SHA" \
      --job-token "$CI_JOB_TOKEN" \
Administrator's avatar
Administrator committed
      --assets-link="{'name':'VirtualFluidsSingularityImage_OpenMPI','url':'','type':'other','filepath':'Containers/VirtualFluidsOpenMPI.sif'}"