Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.21 KiB
Newer Older
xcizek's avatar
xcizek committed

Jan Kolomazník's avatar
Jan Kolomazník committed
variables:
  SPRING_PROFILES_ACTIVE: gitlab
xcizek's avatar
xcizek committed
  DOCKER_HOST: $DOCKER_HOST_BIO
xkoloma1's avatar
xkoloma1 committed
  IMAGE_TAG: $CI_COMMIT_TAG
xcizek's avatar
xcizek committed
#services:
#  - docker:dind
Jan Kolomazník's avatar
Jan Kolomazník committed

cache:
  untracked: true
  key: "$CI_COMMIT_MESSAGE"
  paths:
    - .gradle
    - build

Jan Kolomazník's avatar
Jan Kolomazník committed
stages:
  - analyse
  - build
  - verification
  - publish
  - deploy

# ===========================================================================
# Stage: analyse
# ===========================================================================

include:
  - template: Code-Quality.gitlab-ci.yml

code_quality:
  stage: analyse
  services: []          # Shut off Docker-in-Docker
  variables:
    REPORT_FORMAT: html
  artifacts:
    paths: [gl-code-quality-report.html]

# second job has to be run to create both artefacts
code_quality_json:
  extends: code_quality
  variables:
    REPORT_FORMAT: json
  artifacts:
    paths: [gl-code-quality-report.json]

# ===========================================================================
# Stage: build
# ===========================================================================

Jan Kolomazník's avatar
Jan Kolomazník committed
  stage: build
xkoloma1's avatar
xkoloma1 committed
  image: eclipse-temurin:17-jdk-alpine
Jan Kolomazník's avatar
Jan Kolomazník committed
  script:
    - ./gradlew bootJar

xcizek's avatar
xcizek committed
  variables:
    DOCKER_HOST: $DOCKER_HOST_BIO
xkoloma1's avatar
xkoloma1 committed
  stage: build
xcizek's avatar
xcizek committed
  image: docker:git
Jan Kolomazník's avatar
Jan Kolomazník committed
  script:
xcizek's avatar
xcizek committed
    - echo $IMAGE_TAG
xkoloma1's avatar
xkoloma1 committed
    - docker build -t $DOCKER_NAMESPACE/gateway:$IMAGE_TAG .
xkoloma1's avatar
xkoloma1 committed
    - docker save -o build/image.tar $DOCKER_NAMESPACE/gateway:$IMAGE_TAG
Jan Kolomazník's avatar
Jan Kolomazník committed

# ===========================================================================
# Stage: test
# ===========================================================================

verification-unit:
  stage: verification
xkoloma1's avatar
xkoloma1 committed
  image: eclipse-temurin:17-jdk-alpine
Jan Kolomazník's avatar
Jan Kolomazník committed
  allow_failure: true
  script:
    - ./gradlew test
  artifacts:
    when: always
    reports:
      junit: build/test-results/test/**/TEST-*.xml

verification-env:
  stage: verification
xkoloma1's avatar
xkoloma1 committed
  image: eclipse-temurin:17-jdk-alpine
Jan Kolomazník's avatar
Jan Kolomazník committed
  allow_failure: true
  before_script:
    - export $(xargs < .env)
  script:
    - echo $TAG

# ===========================================================================
# Stage: publish
# ===========================================================================

Jan Kolomazník's avatar
Jan Kolomazník committed
docker-push:
Jan Kolomazník's avatar
Jan Kolomazník committed
  stage: publish
Jan Kolomazník's avatar
Jan Kolomazník committed
  image: docker
Jan Kolomazník's avatar
Jan Kolomazník committed
  only:
    - master
    - /^verze_\d+\.\d+\.\d+$/
  before_script:
    - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
  script:
Jan Kolomazník's avatar
Jan Kolomazník committed
    - docker load -i build/image.tar
Jan Kolomazník's avatar
Jan Kolomazník committed
    - docker push $DOCKER_NAMESPACE/gateway:$TAG
Jan Kolomazník's avatar
Jan Kolomazník committed
# ===========================================================================
# Stage: deploy
# ===========================================================================

deploy-bioinformatika.pef.mendelu.cz:
  stage: deploy
  only:
    - 384-test-server-deplyment
    - master
  script:
    - cp .env /home/bioinformatics/
    - cd /home/bioinformatics/
    - docker-compose config > docker-swarm.yml
#    - docker stack deploy -c docker-compose.yml test_stack
#  after_script:
#    - docker system prune -f

deploy-bioinformatics.ibp.cz:
  stage: deploy
  only:
    - /^verze_\d+\.\d+\.\d+$/
  script:
    - scp .env root@bioinformatics.ibp.cz:/opt/
    - scp docker-compose.yml root@bioinformatics.ibp.cz:/opt/
    - ssh root@bioinformatics.ibp.cz "cd /opt && export $(xargs < .env) && docker stack deploy dna-analyser -c docker-compose.yml"