Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.24 KiB
Newer Older
Laurent Heirendt's avatar
Laurent Heirendt committed
stages:
Laurent Heirendt's avatar
Laurent Heirendt committed
  - retrieve
Laurent Heirendt's avatar
Laurent Heirendt committed
  - build
  - deploy

Laurent Heirendt's avatar
Laurent Heirendt committed
retrieve:repo:
Laurent Heirendt's avatar
Laurent Heirendt committed
  stage: retrieve
Laurent Heirendt's avatar
Laurent Heirendt committed
  script:
    - git clone https://$CI_DEPLOY_TOKEN:$CI_DEPLOY_PASSWORD@git-r3lab.uni.lu/R3/school/courses.lcsb.uni.lu.git
Laurent Heirendt's avatar
Laurent Heirendt committed
  artifacts:
    expire_in: 1 day
    paths:
      - courses.lcsb.uni.lu
Laurent Heirendt's avatar
Laurent Heirendt committed
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
    - if: $CI_COMMIT_BRANCH == "master"
Laurent Heirendt's avatar
Laurent Heirendt committed

Laurent Heirendt's avatar
Laurent Heirendt committed
  image: python
Laurent Heirendt's avatar
Laurent Heirendt committed
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
Laurent Heirendt's avatar
Laurent Heirendt committed
    - if: $CI_COMMIT_BRANCH == "master"
  script:
    - python .ci/generateIndex.py
  artifacts:
    expire_in: 1 day
    paths:
      - courses.lcsb.uni.lu
Laurent Heirendt's avatar
Laurent Heirendt committed

Laurent Heirendt's avatar
Laurent Heirendt committed
build:website:
  image: git-r3lab.uni.lu:4567/r3/docker/jekyll-lcsb
Laurent Heirendt's avatar
Laurent Heirendt committed
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
    - if: $CI_COMMIT_BRANCH == "master"
Laurent Heirendt's avatar
Laurent Heirendt committed
  before_script:
    - cd courses.lcsb.uni.lu
    - gem install bundler -v2.0.2
    - bundle install && bundle update jekyll-theme-lcsb-default && bundle update jekyll-theme-lcsb-frozen-components
Laurent Heirendt's avatar
Laurent Heirendt committed
    - cd ..
Laurent Heirendt's avatar
Laurent Heirendt committed
    - cd courses.lcsb.uni.lu
    - bundle exec jekyll build -d site --config "_config.yml"
    - mv site ../.
    - cd ..
  artifacts:
    expire_in: 1 day
    paths:
      - site
  variables:
    JEKYLL_ENV: production
Laurent Heirendt's avatar
Laurent Heirendt committed
build:courses:
  image: git-r3lab.uni.lu:4567/r3/docker/nodejs-yarn-grunt
  stage: build
  rules:
    - if: $CI_COMMIT_BRANCH == "develop"
Laurent Heirendt's avatar
Laurent Heirendt committed
    - if: $CI_COMMIT_BRANCH == "master"
  script:
    - bash .ci/deploy.sh
Laurent Heirendt's avatar
Laurent Heirendt committed
  artifacts:
    expire_in: 1 day
    paths:
      - public

Laurent Heirendt's avatar
Laurent Heirendt committed
upload:
Laurent Heirendt's avatar
Laurent Heirendt committed
  stage: deploy
Laurent Heirendt's avatar
Laurent Heirendt committed
  before_script:
    - apk add rsync
Laurent Heirendt's avatar
Laurent Heirendt committed
    - 'which ssh-agent || ( apk add --update openssh )'
    - eval $(ssh-agent -s)
    - echo "$B64SSHPRIVKEY" | base64 -d | tr -d '\r' | ssh-add - > /dev/null
    - mkdir -p ~/.ssh && chmod 700 ~/.ssh
    - 'echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    - echo "$KNOWNHOSTS" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  rules:
Laurent Heirendt's avatar
Laurent Heirendt committed
    - if: $CI_COMMIT_BRANCH == "develop"
    - if: $CI_COMMIT_BRANCH == "master"
Laurent Heirendt's avatar
Laurent Heirendt committed
  script:
Laurent Heirendt's avatar
Laurent Heirendt committed
    - rsync -ravu --info=progress2 -e "ssh -p $SSHPORT" site/* $SSHCONNECT:~/web/latest
    - rsync -ravu --info=progress2 -e "ssh -p $SSHPORT" public/* $SSHCONNECT:~/web/latest