Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.01 KiB
Newer Older
Tom Teichler's avatar
Tom Teichler committed
variables:
  GIT_SUBMODULE_STRATEGY: recursive

Tom Teichler's avatar
Tom Teichler committed
stages:
Tom Teichler's avatar
Tom Teichler committed
  - test
Tom Teichler's avatar
Tom Teichler committed
  - build
  - deploy

Tom Teichler's avatar
Tom Teichler committed
zola check:
  stage: test
Tom Teichler's avatar
Tom Teichler committed
  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/alpine:latest
Tom Teichler's avatar
Tom Teichler committed
  before_script:
  - apk add --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ zola
  - apk add yarn
  - yarn install
  script:
  - zola check
Nik | Klampfradler's avatar
Nik | Klampfradler committed

Tom Teichler's avatar
Tom Teichler committed
.build:
Tom Teichler's avatar
Tom Teichler committed
  stage: build
  interruptible: true
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  script:
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" >/kaniko/.docker/config.json
    - /kaniko/executor
       --context $CI_PROJECT_DIR
       --dockerfile $CI_PROJECT_DIR/Dockerfile
       --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
Tom Teichler's avatar
Tom Teichler committed
       --digest-file DIGESTFILE
Tom Teichler's avatar
Tom Teichler committed
       --build-arg BASE_URL=$BASE_URL
       --cache=true
       --cleanup
Tom Teichler's avatar
Tom Teichler committed
  artifacts:
    paths:
      - DIGESTFILE

Tom Teichler's avatar
Tom Teichler committed

build production:
  extends: .build
Tom Teichler's avatar
Tom Teichler committed
  variables:
    BASE_URL: https://teckids.org
Tom Teichler's avatar
Tom Teichler committed
  only:
    - master

build review:
  extends: .build
  variables:
    BASE_URL: https://$CI_COMMIT_REF_SLUG.review.teckids.org
  only:
    - merge_requests

Tom Teichler's avatar
Tom Teichler committed
.deploy:
Tom Teichler's avatar
Tom Teichler committed
  stage: deploy
Tom Teichler's avatar
Tom Teichler committed
  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/line/kubectl-kustomize:latest
Tom Teichler's avatar
Tom Teichler committed
  tags:
    - teckids-trusted
Tom Teichler's avatar
Tom Teichler committed
  before_script:
Tom Teichler's avatar
Tom Teichler committed
    - echo $KUBECONFIG | base64 -d > /tmp/kubeconfig
Tom Teichler's avatar
Tom Teichler committed

deploy production:
  extends: .deploy
  environment:
    name: production
    url: https://teckids.org
  script:
Tom Teichler's avatar
Tom Teichler committed
    - cd deploy/overlays/production
Tom Teichler's avatar
Tom Teichler committed
    - kustomize edit set image registry.edugit.org/teckids/team-pr/teckids.org:$CI_COMMIT_REF_NAME@$(cat ../../../DIGESTFILE)
Tom Teichler's avatar
Tom Teichler committed
    - kustomize build > output.yaml
Tom Teichler's avatar
Tom Teichler committed
    - kubectl --kubeconfig=/tmp/kubeconfig apply -f output.yaml
Tom Teichler's avatar
Tom Teichler committed
  only:
    - master

deploy review:
  extends: .deploy
  script: deploy_review
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    url: https://$CI_COMMIT_REF_SLUG.review.teckids.org
    on_stop: delete review
    auto_stop_in: 3 days
  only:
    - merge_requests
  when: manual
  script:
    - cd deploy/overlays/review
    - kustomize edit set image registry.edugit.org/teckids/team-pr/teckids.org:$CI_COMMIT_REF_NAME@$(cat ../../../DIGESTFILE)
Tom Teichler's avatar
Tom Teichler committed
    - kustomize edit set nameprefix $CI_COMMIT_REF_SLUG
Tom Teichler's avatar
Tom Teichler committed
    - kustomize build | sed s/__REVIEW_NAME__/$CI_COMMIT_REF_SLUG/g > output.yaml
Tom Teichler's avatar
Tom Teichler committed
    - kubectl --kubeconfig=/tmp/kubeconfig apply -f output.yaml

delete review:
  extends: .deploy
  script: delete_review
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    action: stop
  before_script:
    - echo $KUBECONFIG | base64 -d > /tmp/kubeconfig
    - cd deploy/overlays/review
Tom Teichler's avatar
Tom Teichler committed
    - kustomize edit set image registry.edugit.org/teckids/team-pr/teckids.org:$CI_COMMIT_REF_NAME@$(cat ../../../DIGESTFILE)
    - kustomize edit set nameprefix $CI_COMMIT_REF_SLUG
Tom Teichler's avatar
Tom Teichler committed
    - kustomize build | sed s/__REVIEW_NAME__/$CI_COMMIT_REF_SLUG/g > output.yaml
Tom Teichler's avatar
Tom Teichler committed
  script:
    - kubectl --kubeconfig=/tmp/kubeconfig delete -f output.yaml
  when: manual
  only:
    - merge_requests