Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.81 KiB
Newer Older
.ssh-setup: &ssh-setup
  - eval $(ssh-agent -s)
  - echo "$CI_DEPLOYMENT_PRIVATE_KEY" | tr -d '\r' | ssh-add -
  - echo "$UBERSPACE_KNOWN_HOST" >> ~/.ssh/known_hosts

include:
  - project: 'fit-connect/pipeline'
    ref: main
    file: 'workflows/no-duplicate-pipelines.gitlab-ci.yml'
build:
  image: node:lts-alpine
  variables:
    GIT_BRANCH: $CI_COMMIT_REF_NAME
  before_script:
    - apk add git
    - yarn
  script:
    - export DOCUSAURUS_BASE_URL="/fit-connect/" && [[ "$CI_COMMIT_REF_NAME" != "main" ]] && export DOCUSAURUS_BASE_URL="/fit-connect/$CI_COMMIT_REF_SLUG/"
    - yarn build
  artifacts:
    expose_as: 'Built Documentation'
    paths:
      - build/
    expire_in: 30 days
upload:preview:
  image: ${CI_REGISTRY}/fit-connect/baseimage:latest
    name: preview/$CI_COMMIT_REF_NAME
    on_stop: stop:preview
    auto_stop_in: 2 week
    url: https://preview.docs.fitko.dev/fit-connect/$CI_COMMIT_REF_SLUG/
  rules:
    - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
  before_script:
    - *ssh-setup
    - ssh -o CheckHostIP=no fitko@dorado.uberspace.de mkdir -p preview.docs.fitko.dev/fit-connect
    - rsync -rLvz --delete --checksum -e "ssh -o CheckHostIP=no" --ipv4 --progress ./build/. fitko@dorado.uberspace.de:preview.docs.fitko.dev/fit-connect/$CI_COMMIT_REF_SLUG
upload:production:
  image: ${CI_REGISTRY}/fit-connect/baseimage:latest
  environment:
    name: production
    url: https://docs.fitko.de/fit-connect/
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  before_script:
    - *ssh-setup
    - ssh -o CheckHostIP=no fitko@dorado.uberspace.de mkdir -p docs.fitko.de/fit-connect
    - rsync -rLvz --delete --checksum -e "ssh -o CheckHostIP=no" --ipv4 --progress ./build/. fitko@dorado.uberspace.de:docs.fitko.de/fit-connect
stop:preview:
  image: ${CI_REGISTRY}/fit-connect/baseimage:latest
    name: preview/$CI_COMMIT_REF_NAME
    - upload:preview
  rules:
    - if: $CI_MERGE_REQUEST_ID
      when: manual
  before_script:
    - *ssh-setup
    - ssh fitko@dorado.uberspace.de "rm -rf preview.docs.fitko.dev/fit-connect/$CI_COMMIT_REF_SLUG"
link-check:
  stage: validate
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH # live docs
      variables:
        CRAWLER_URL: https://docs.fitko.de/fit-connect/docs
        CRAWLER_DOMAIN: docs.fitko.de
    - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH # preview docs
      variables:
        CRAWLER_URL: https://preview.docs.fitko.dev/fit-connect/$CI_COMMIT_REF_SLUG/
        CRAWLER_DOMAIN: preview.docs.fitko.dev
  trigger:
    strategy: depend
    project: fit-connect/schema-link-checker
    branch: main