Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.25 KiB
Newer Older
image: quantumtinkerer/research

stages:
  - build
  - deploy

build lectures:
  stage: build
  before_script:
    - pip install -U mkdocs mkdocs-material python-markdown-math notedown
  script:
    - python execute.py
    - mkdocs build
  artifacts:
    paths:
      - site
    expire_in: 1 week

.prepare_deploy: &prepare_deploy
  stage: deploy
  only:
    - branches@{{cookiecutter.REPO_WITH_NAMESPACE}}
  before_script:
    ## Install ssh-agent if not already installed, it is required by Docker.
    ## (change apt-get to yum if you use an RPM-based image)
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'

    ## Run ssh-agent (inside the build environment)
    - eval $(ssh-agent -s)

    ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
    ## We're using tr to fix line endings which makes ed25519 keys work
    ## without extra base64 encoding.
    ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
    - echo "$WEBSITE_UPLOAD_KEY" | tr -d '\r' | ssh-add - > /dev/null

    ## Create the SSH directory and give it the right permissions
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - ssh-keyscan tnw-tn1.tudelft.net >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - "rsync -rv site/* {{cookiecutter.project_slug}}@tnw-tn1.tudelft.net:$DEPLOY_PATH"

deploy master version:
  <<: *prepare_deploy
  only:
    - master@{{cookiecutter.REPO_WITH_NAMESPACE}}
  variables:
    DEPLOY_PATH: ""
  environment:
    name: $CI_COMMIT_REF_NAME
    url: "https://{{cookiecutter.SERVER_URL}}"

deploy test version:
  <<: *prepare_deploy
  except:
    - master@{{cookiecutter.REPO_WITH_NAMESPACE}}
  variables:
    DEPLOY_PATH: "test_builds/$CI_COMMIT_REF_NAME"
  environment:
    name: $CI_COMMIT_REF_NAME
    url: "https://{{cookiecutter.SERVER_URL}}/test_builds/$CI_COMMIT_REF_NAME"
    on_stop: undeploy test version

undeploy test version:
  <<: *prepare_deploy
  except:
    - master@{{cookiecutter.REPO_WITH_NAMESPACE}}
  when: manual
  variables:
    DEPLOY_PATH: "test_builds/$CI_COMMIT_REF_NAME"
  script:
    - mkdir empty/
    - "rsync -rlv --delete empty/ {{cookiecutter.project_slug}}@tnw-tn1.tudelft.net:$DEPLOY_PATH"
  environment:
    name: $CI_COMMIT_REF_NAME
    action: stop