Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.17 KiB
.pre-deploy-uber-space-setup: &pre-deploy-uber-space-setup
  - apk add rsync openssh-client
  - eval $(ssh-agent -s)
  - echo "$CI_DEPLOYMENT_PRIVATE_KEY" | tr -d '\r' | ssh-add -
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - echo "$UBERSPACE_KNOWN_HOST" >> ~/.ssh/known_hosts

.doc-changelist: &doc-changelist
  changes:
    - docs/*
    - versioned_docs/*
    - versioned_sidebars/*
    - src/*
    - static/*
    - docusaurus.config.js
    - sidebars.js
    - versions.json
    - .gitlab-ci.yml

stages:
  - lint
  - build
  - upload
  - release

lint-job:
  stage: lint
  image:
    name: $CI_REGISTRY/stoplight/spectral:latest
    entrypoint: [ "" ]
  script:
    - spectral lint spec/*.yml

build:spec:
  stage: build
  image: $CI_REGISTRY/node:current-alpine
  before_script:
    - npm install -g @apidevtools/swagger-cli
    - mkdir dist
  script:
    - cp metadata-schema/antragsmetadaten.schema.json dist/
    - swagger-cli bundle -t yaml -o dist/zustelldienst.yml spec/zustelldienst.yml
  artifacts:
    expose_as: 'Built API spec'
    paths:
      - dist/
    expire_in: 30 days

build:doc:
  stage: build
  image: $CI_REGISTRY/node:current-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="/preview/fit-connect/$CI_COMMIT_REF_SLUG/"
    - yarn build
  artifacts:
    expose_as: 'Built Documentation'
    paths:
      - build/
    expire_in: 30 days
  rules:
    - *doc-changelist

upload:doc:
  stage: upload