Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.95 KiB
Newer Older
variables:
  DOCKER_HOST: $DOCKER_HOST_BIO
  PROJECT_NAME: "backend"
cache:
  key: $CI_COMMIT_REF_NAME
  paths:
    - build/

stages:
  - build
  - verification
  - publish
  - deploy



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

gradlew-bootJar:
  stage: build
    - rancher02
    - rancher03
  image: eclipse-temurin:11-jdk-alpine
  script:
    - ./gradlew bootJar
    - echo "bootJar"
docker-build-latest:
  stage: build
  image: docker:git
  tags:
    - cache
  # only:
  #  refs:
  #    - main
  except:
    variables:
      - $CI_COMMIT_TAG
  before_script:
    - mkdir -p build
  script:
    - docker build -t $DOCKER_NAMESPACE/$PROJECT_NAME:latest .
    - docker save -o build/image.tar $DOCKER_NAMESPACE/$PROJECT_NAME:latest

docker-build-tag:
  stage: build
  image: docker:git
  tags:
    - cache
  only:
    variables:
      - $CI_COMMIT_TAG
  before_script:
    - mkdir -p build
  script:
    - docker build -t $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG .
    - docker save -o build/image.tar $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG 


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


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

docker-push-latest:
  stage: publish
  image: docker
  tags:
    - cache
  # only:
  #  - main
  before_script:
    - docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN $DOCKER_REGISTRY
  script:
    - docker load -i build/image.tar
    # - docker push $DOCKER_NAMESPACE/$PROJECT_NAME:latest

docker-push-tag:
  stage: publish
  image: docker
  tags:
    - cache
  only:
    variables:
      - $CI_COMMIT_TAG
  before_script:
    - docker login -u $DOCKER_USERNAME -p $DOCKER_TOKEN $DOCKER_REGISTRY
  script:
    - docker load -i build/image.tar
    - docker push $DOCKER_NAMESPACE/$PROJECT_NAME:$CI_COMMIT_TAG

# ===========================================================================
# Stage: deploy
# ===========================================================================

deploy-bioinformatika.pef.mendelu.cz:
  stage: deploy
  tags:
    - master
  only:
    - main
  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
  tags:
    - master
  only:
    variables:
      - $CI_COMMIT_TAG
  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"