UNPKG

linagora-rse

Version:
379 lines (348 loc) 10.9 kB
stages: - prepare - linters - test - test-e2e - build - swagger - deploy .cache-tpl: &cache-tpl key: "$CI_COMMIT_REF_SLUG" paths: - node_modules - frontend/components policy: pull .curl-tpl: &curl-tpl variables: GIT_STRATEGY: none tags: - curl before_script: - apk add --no-cache curl jq .build-pkg-tpl: &build-pkg-tpl <<: *curl-tpl only: - master@linagora/lgs/openpaas/esn except: variables: - $SKIP_BUILD_PKG .test-template: &test-template image: node:8 stage: test tags: - docker cache: <<: *cache-tpl variables: TZ: "America/New_York" before_script: - npm install -g grunt-cli - 'echo "INFO: NB node packages : $(ls node_modules | wc -l)"' - 'echo "INFO: NB bower packages : $(ls frontend/components | wc -l)"' except: variables: - $SKIP_TESTS refs: - tags@linagora/lgs/openpaas/esn .test-template-svc: &test-template-svc <<: *test-template services: - name: elasticsearch:2.3.2 alias: elasticsearch - name: mongo:3.2.0 alias: mongo - name: redis:latest alias: redis - name: rabbitmq:3.6.5-management alias: rabbitmq variables: MONGO_HOST: mongo MONGO_PORT: 27017 AMQP_HOST: rabbitmq AMQP_PORT: 5672 ELASTICSEARCH_HOST : elasticsearch ELASTICSEARCH_PORT: 9200 REDIS_HOST: redis REDIS_PORT: 6379 prepare: image: node:8 stage: prepare tags: - docker cache: <<: *cache-tpl policy: pull-push script: - npm install # Weird behaviour: at the time, npm postinstall was not called. - ./node_modules/.bin/bower install --allow-root - 'echo "INFO: NB node packages : $(ls node_modules | wc -l)"' - 'echo "INFO: NB bower packages : $(ls frontend/components | wc -l)"' except: variables: - $SKIP_PREPARE linters: <<: *test-template stage: linters script: - grunt -v linters except: variables: - $SKIP_LINTERS refs: - tags@linagora/lgs/openpaas/esn check_author: image: docker-registry.linagora.com:5000/lgs-releases/gitlab-integrity-checks:latest stage: linters variables: GIT_DEPTH: "1" tags: - ultralight script: - check_author.py check "$GITLAB_USER_EMAIL" "$GITLAB_USER_NAME" --no-accents except: refs: - master@linagora/lgs/openpaas/esn - tags@linagora/lgs/openpaas/esn - /^release-.*/@linagora/lgs/openpaas/esn ####### tests without services requirements frontend-test: <<: *test-template script: - grunt -v test-frontend modules-frontend-test: <<: *test-template script: - npm install # Weird behaviour: at the time, npm postinstall was not called. - ./node_modules/.bin/bower install --allow-root - grunt -v test-modules-frontend - TZ="Pacific/Kiritimati" grunt -v test-modules-frontend - TZ="Pacific/Midway" grunt -v test-modules-frontend - TZ="Pacific/Chatham" grunt -v test-modules-frontend unit-backend-test: <<: *test-template script: - grunt -v --chunk=1 test-unit-backend modules-unit-backend-test: <<: *test-template script: - grunt -v --chunk=1 test-modules-unit-backend ####### tests with services requirements unit-storage-test: <<: *test-template-svc script: - grunt -v --chunk=1 gitlab-test-unit-storage - grunt -v --chunk=1 gitlab-test-modules-unit-storage modules-midway-test: <<: *test-template-svc script: - grunt -v --chunk=1 gitlab-test-modules-midway midway-backend-test: <<: *test-template-svc script: - grunt --chunk=1 -v gitlab-test-midway-backend # Why is it deactivated ? # This job try to build and test everything !!! .test-e2e: stage: test-e2e before_script: - export TZ=America/New_York - . ~/.nvm/nvm.sh && nvm use 8 - npm install -g grunt-cli cache: <<: *cache-tpl script: - export VIDEO=true - export VIDEO_FIREFOX_NAME=firefox-$CI_JOB_ID - export VIDEO_CHROME_NAME=chrome-$CI_JOB_ID - export VIDEO_DIR="$PWD/e2e-videos" - npm install - grunt test-e2e-clean - grunt test-e2e-prepare $DOCKER_OPTIONS - BROWSER="firefox" VIDEO_FILE_NAME=$VIDEO_FIREFOX_NAME grunt test-e2e $DOCKER_OPTIONS - BROWSER="chrome" VIDEO_FILE_NAME=$VIDEO_CHROME_NAME grunt test-e2e $DOCKER_OPTIONS allow_failure: true build_pkg_deb_openpaas_jessie: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas" -F "variables[DOCKERFILE]=debian/jessie/openpaas/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . build_pkg_deb_openpaas_stretch: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas" -F "variables[DOCKERFILE]=debian/stretch/openpaas/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . build_pkg_rpm_openpaas: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas" -F "variables[DOCKERFILE]=redhat/7/openpaas/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . build_pkg_deb_openpaas-james_jessie: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas-james" -F "variables[DOCKERFILE]=debian/jessie/openpaas-james/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . build_pkg_deb_openpaas-james_stretch: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas-james" -F "variables[DOCKERFILE]=debian/stretch/openpaas-james/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . build_pkg_rpm_openpaas-james: <<: *build-pkg-tpl stage: build script: - curl -s -X POST -F "token=${BUILD_PACKAGE_CI_TOKEN}" -F "ref=master" -F "variables[REPO]=https://ci.linagora.com/linagora/lgs/openpaas/esn.git" -F "variables[VERSION_FILE]=package.json" -F "variables[PACKAGE_NAME]=openpaas-james" -F "variables[DOCKERFILE]=redhat/7/openpaas-james/Dockerfile" https://ci.linagora.com/api/v4/projects/338/trigger/pipeline | jq . # Maybe this stage should not use test-template, # the job will not created for tag pipeline. swagger: <<: *test-template stage: swagger script: - grunt swagger-generate artifacts: paths: - ./doc/REST_API/swagger/swagger.json deploy-swagger: stage: deploy tags: - deployment - api.open-paas.org - shell environment: name: api url: https://api.open-paas.org only: - master@linagora/lgs/openpaas/esn script: - perl -i -pe's/"host":"localhost:8080"/"schemes":["https"],"host":"demo.open-paas.org"/' ./doc/REST_API/swagger/swagger.json - cp ./doc/REST_API/swagger/swagger.json /var/www/html deploy-dev: stage: deploy tags: - dev.open-paas.org - deployment environment: name: dev url: https://dev.open-paas.org only: - master@linagora/lgs/openpaas/esn script: - cd /srv/rse.dev - git fetch --all - git checkout ${CI_COMMIT_SHA} - npm install --ignore-scripts --production - npm update --production - npm prune - bower install --production - bower prune - git checkout -- . - sudo /etc/init.d/rse.dev restart .build-docker-tpl: &build-docker-tpl image: docker-registry.linagora.com:5000/linshare-snapshots/linshare-dind:latest tags: - docker services: - name: docker-registry.linagora.com:5000/linshare-snapshots/linshare-dind:latest alias: docker-dind docker-snapshot: <<: *build-docker-tpl stage: build variables: DOCKER_HOST: "tcp://docker-dind" DOCKER_IMAGE_PRIVATE: "docker-registry.linagora.com:5000/openpaas-snapshots/openpaas-esn" script: - guess-version.sh guest - source version.env - docker-tag-computing.sh ${VERSION} docker-tag-and-push.env - docker login -u ${REGISTRY_USER} -p ${REGISTRY_TOKEN} docker-registry.linagora.com:5000 - docker build . -t build:latest - docker-tag-and-push.sh build:latest ${DOCKER_IMAGE_PRIVATE} - docker logout only: - master@linagora/lgs/openpaas/esn - /^release-.*/@linagora/lgs/openpaas/esn except: variables: - $SKIP_BUILD_DOCKER docker-release: <<: *build-docker-tpl stage: build variables: DOCKER_HOST: "tcp://docker-dind" DOCKER_IMAGE_PRIVATE: "docker-registry.linagora.com:5000/openpaas-releases/openpaas-esn" DOCKER_IMAGE_PUBLIC: "linagora/esn" script: - docker-tag-computing.sh ${CI_COMMIT_TAG} docker-tag-and-push.env - docker login -u ${REGISTRY_USER_RELEASE} -p ${REGISTRY_TOKEN_RELEASE} docker-registry.linagora.com:5000 - docker login -u ${HUB_DOCKER_USER} -p ${HUB_DOCKER_TOKEN} - docker build . -t build:latest - docker-tag-and-push.sh build:latest ${DOCKER_IMAGE_PRIVATE} ${DOCKER_IMAGE_PUBLIC} - docker logout only: - tags@linagora/lgs/openpaas/esn except: variables: - $SKIP_BUILD_DOCKER docker-mark-as-latest-from-tag: <<: *build-docker-tpl stage: deploy variables: GIT_STRATEGY: none DOCKER_HOST: "tcp://docker-dind" DOCKER_IMAGE_PRIVATE: "docker-registry.linagora.com:5000/openpaas-releases/openpaas-esn" DOCKER_IMAGE_PUBLIC: "linagora/esn" script: - docker login -u ${REGISTRY_USER_RELEASE} -p ${REGISTRY_TOKEN_RELEASE} docker-registry.linagora.com:5000 - docker login -u ${HUB_DOCKER_USER} -p ${HUB_DOCKER_TOKEN} - docker-tag-computing.sh ${CI_COMMIT_TAG} docker-tags.env - source docker-tags.env - docker pull ${DOCKER_IMAGE_PRIVATE}:${DOCKER_TAG} - export DOCKER_TAGS=latest - docker-tag-and-push.sh ${DOCKER_IMAGE_PRIVATE}:${DOCKER_TAG} ${DOCKER_IMAGE_PRIVATE} ${DOCKER_IMAGE_PUBLIC} - docker logout when: manual only: - tags@linagora/lgs/openpaas/esn