Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.35 KiB
Newer Older
image: storm2/ngx-voms-build:latest
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
stages:
  - build
  - test
  - docker-build
  - docker-push
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
  - deploy
build-no-debug:
  stage: build
  script:
    - env
    - sh ${HOME}/build-install-ngx-voms.sh
    - mv ${HOME}/local/openresty openresty && rm openresty/nginx/sbin/nginx.old && tar cvzf openresty-no-debug.tar.gz openresty
  artifacts:
    paths:
      - openresty-no-debug.tar.gz 

build4c:
  stage: build
  script:
    - env
    - sh ${HOME}/build-install-ngx-voms.sh -d -c
    - mv ${HOME}/local local
    - mv ${HOME}/openresty-1.13.6.1/build/nginx-1.13.6 nginx-1.13.6
    - tar cvzf artifacts.tar.gz local nginx-1.13.6
  artifacts:
    paths:
      - artifacts.tar.gz
  stage: test
  dependencies:
    - build4c
  script:
    - rm -rf ${HOME}/local/
    - rm -rf ${HOME}/openresty-1.13.6.1/build/nginx-1.13.6/
    - tar xvzf artifacts.tar.gz
    - mv local ${HOME}
    - mv nginx-1.13.6 ${HOME}/openresty-1.13.6.1/build/
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
    - sh test-ngx-voms.sh
    - sh cov-ngx-voms.sh
    - mv /tmp/coverage-report coverage
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
  artifacts:
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
    paths:
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
      - coverage

pages:
  stage: deploy
  image: docker:latest
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
  dependencies:
    - test4c
Elisabetta Ronchieri's avatar
Elisabetta Ronchieri committed
  script:
    - mv coverage/ public/
  artifacts:
    paths:
      - public
    expire_in: 30 days

docker-build:
  stage: docker-build
  image: docker:latest
  services:
    - docker:dind
  dependencies:
    - build-no-debug
    - cp openresty-no-debug.tar.gz ${CI_PROJECT_DIR}/docker/openresty.tar.gz && cd ${CI_PROJECT_DIR}/docker && sh build-image.sh
    - docker tag storm2/ngx-voms:latest ${CI_REGISTRY_IMAGE}/ngx-voms:${CI_COMMIT_SHA:0:8}
    - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
    - docker push ${CI_REGISTRY_IMAGE}/ngx-voms:${CI_COMMIT_SHA:0:8}

dockerhub-push:
  stage: docker-push
  image: docker:latest
  services:
    - docker:dind
  dependencies:
    - docker-build
  script:
    - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
    - docker pull ${CI_REGISTRY_IMAGE}/ngx-voms:${CI_COMMIT_SHA:0:8}
    - docker tag ${CI_REGISTRY_IMAGE}/ngx-voms:${CI_COMMIT_SHA:0:8} storm2/ngx-voms:${CI_COMMIT_SHA:0:8}
    - docker tag ${CI_REGISTRY_IMAGE}/ngx-voms:${CI_COMMIT_SHA:0:8} storm2/ngx-voms:latest
    - docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASSWORD}
    - docker push storm2/ngx-voms:${CI_COMMIT_SHA:0:8}
    - docker push storm2/ngx-voms:latest
  only:
    - master