Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.79 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:
  - npm
  - build
  - test
  - deploy
  - release

# job_install-npm:
#   stage: npm
#   script:
#     - npm config set registry ${CI_NPM_REGISTRY}
#     - npm install
#   cache:
#     paths:
#       - node_modules/
#   artifacts:
#     expire_in: 1 days
#     when: on_success
#     paths:
#       - node_modules/

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 -d --build
    # # - 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: