Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dominik Hebeler's avatar
    Dominik Hebeler committed
    variables:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        DOCKER_HOST: "tcp://docker-dind.gitlab:2375"
        POSTGRES_ENABLED: "false"
        CODE_QUALITY_DISABLED: "true"
        CONTAINER_SCANNING_DISABLED: "true"
        DAST_DISABLED: "true"
        DEPENDENCY_SCANNING_DISABLED: "true"
        LICENSE_MANAGEMENT_DISABLED: "true"
        PERFORMANCE_DISABLED: "true"
        SAST_DISABLED: "true"
        TEST_DISABLED: "true"
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    include:
      - template: Jobs/Build.gitlab-ci.yml
      - template: Jobs/Deploy.gitlab-ci.yml
    
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    stages:
      - prepare
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      - build
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      - test
      - deploy  # dummy stage to follow the template guidelines
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      - review
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      - dast
      - staging
      - canary
      - production
      - incremental rollout 10%
      - incremental rollout 25%
      - incremental rollout 50%
      - incremental rollout 100%
      - performance
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      - cleanup
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    prepare_node:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      stage: prepare
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      image: node:10
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      before_script:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        - npm install
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      script: 
        - npm run prod
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        - echo "$ENV_FILE" > .env # Also provide env file
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      artifacts:
        paths:
          - node_modules
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - public/css/all.css
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - .env
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      cache:
        # Cache per Branch
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        key: "node-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        paths:
          - node_modules
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      only:
        - branches
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        - tags
        
    prepare_composer:
      stage: prepare
      image: composer/composer:latest
      script:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        - composer install
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      artifacts:
        paths:
          - vendor
      cache:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        key: "composer-$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG"
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        paths:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - vendor
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    build:
      services:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    
    review:
      variables:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
        HELM_UPGRADE_EXTRA_ARGS: --set service.externalPort=80 --set service.internalPort=80 --set service.commonName= --set ingress.tls.enabled=false --set ingress.annotations.kubernetes\.io/tls-acme="false" --set ingress.annotations.nginx\.ingress\.kubernetes\.io/ssl-redirect="false"
        ROLLOUT_RESOURCE_TYPE: deployment