-
Pascal Osterwinter authoredPascal Osterwinter authored
.gitlab-ci.yml 2.81 KiB
.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'
stages:
- build
- upload
- validate
build:
stage: 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
rules:
- when: always
upload:preview:
stage: upload
image: ${CI_REGISTRY}/fit-connect/baseimage:latest
environment:
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/
needs:
- build
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
before_script:
- *ssh-setup
script:
- 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:
stage: upload
image: ${CI_REGISTRY}/fit-connect/baseimage:latest
environment:
name: production
url: https://docs.fitko.de/fit-connect/
needs:
- build
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
before_script:
- *ssh-setup
script:
- 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:
stage: .post