Skip to content
Snippets Groups Projects
Select Git revision
  • 0dc754e2e19453fe673b67f5ee3b8dbf72fcc527
  • main default protected
  • dev protected
  • prod protected
  • t-6-deploy-app-on-kubernetes
  • t-5-allocate-vm-cloud
  • t4-build-publish-container
  • t3-build-container-image
  • t2-vagrant
9 results

go.sum

Blame
  • Forked from DevOps (Lecture FB VI) / webservice
    Source project has a limited visibility.
    This project manages its dependencies using Go Modules. Learn more
    .gitlab-ci.yml 4.78 KiB
    workflow:
      rules:
        # NOTE: don't run pipeline if commit is a Merge/Pull-Request
        - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
          when: 'never'
        # Otherwise:
        - when: 'always'
    
    variables:
      version: '0.0.$CI_PIPELINE_IID'
      k8sVersion: '1.20.5'
    
    stages:
      - build
      - test
      - deploy
      - release
    
    job_build-image:
      stage: build
      tags:
        - docker-privileged
      image: docker:20.10.12
      services:
        - name: docker:20.10.12-dind
      before_script:
        - apk add --no-cache docker-compose
        # - docker info
        # - docker-compose --version
      script:
        # - docker-compose up #--tag "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}" ps
        # - docker-compose up -d --build
        - docker build --tag "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
        # # - docker ps
        # # - docker network list
    
        # # NOTE: push image to local registry so that it can be accessed in subsequent jobs
        - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
        - docker push "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
      after_script:
        - docker-compose logs || true
        - docker-compose down || true
        # - docker-compose rm --force "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
    
    job_test-image:
      stage: test
      tags:
        - docker-privileged
      image: docker:20.10.12
      services:
        - name: docker:20.10.12-dind
          alias: containerhost
      variables:
        # NOTE: some random port that hopefully is free on the runner
        outerPort: '38080'
      before_script:
        - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
        - docker pull "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
      script:
        - docker run
            --detach
            --publish "${outerPort}:8080"
            --name "${CI_PROJECT_ID}-${CI_PIPELINE_IID}"
            "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
        - |
          attempts=1
          while (wget "http://containerhost:${outerPort}" 2>&1 || true) | grep 'Connection refused' && [ "${attempts}" -lt 5 ]; do
            sleep 1 && echo sleeping
            attempts=$((attempts + 1))
          done