Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.41 KiB
stages:
  - build
  - test
  - package
  - deploy

build:
  stage: build
  image: maven:3.6.3-jdk-11
  only:
    - master
  script:
    - mvn package -P prod
  artifacts:
    paths:
      - target/*.jar
    expire_in: 1 hours
  tags:
    - kubernetes
    - smart-harvester

test:
  stage: test
  image: maven:3.6.3-jdk-11
  only:
    - master
  script:
    - mvn test -P prod
  tags:
    - kubernetes
    - smart-harvester

package:
  stage: package
  image: docker:latest
  only:
    - master
  services:
    - docker:dind
  before_script:
    - version=`cat version`
    - echo $version
    - docker info
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN $CI_REGISTRY
  script:
    - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$version -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG .
    - docker push --all-tags $CI_REGISTRY/$CI_REGISTRY_IMAGE
  tags:
    - kubernetes
    - smart-harvester

deploy:
  stage: deploy
  image: bitnami/kubectl:latest
  only:
    - master
  before_script:
    - mkdir .kube/
    - echo -n $KUBE_CONFIG | base64 -d > .kube/config
  script:
    # - kubectl --kubeconfig .kube/config --namespace $KUBE_NAMESPACE set image deployment/$KUBE_DEPLOYMENT $KUBE_CONTAINER=$CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_REGISTRY_IMAGE_TAG
    - kubectl --kubeconfig .kube/config --namespace $KUBE_NAMESPACE rollout restart deployment/$KUBE_DEPLOYMENT
  tags:
    - kubernetes
    - smart-harvester