stages: - docker_login - ci - deploy - docker_logout docker_login: stage: docker_login script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} tags: - docker - sci - ubuntu ############################ # ubuntu trusty pipeline ############################ ci:ubuntu_trusty: stage: ci script: - docker build --force-rm --build-arg MDANSE_GIT_COMMIT=${CI_COMMIT_SHA} --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t ci_mdanse_trusty -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-trusty/Dockerfile_build . allow_failure: false tags: - docker - sci - ubuntu deploy:ubuntu_trusty: stage: deploy script: - docker build --force-rm --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t deploy_mdanse_trusty -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-trusty/Dockerfile_deploy . - chmod 755 ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh - ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh trusty dependencies: - ci:ubuntu_trusty allow_failure: false only: - master - develop - /^release-.*$/ - /^hotfix-.*$/ - tags - web when: on_success artifacts: paths: - ./*.deb tags: - docker - sci - ubuntu ############################ # ubuntu xenial pipeline ############################ ci:ubuntu_xenial: stage: ci script: - docker build --force-rm --build-arg MDANSE_GIT_COMMIT=${CI_COMMIT_SHA} --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t ci_mdanse_xenial -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-xenial/Dockerfile_build . allow_failure: false tags: - docker - sci - ubuntu deploy:ubuntu_xenial: stage: deploy script: - docker build --force-rm --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t deploy_mdanse_xenial -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-xenial/Dockerfile_deploy . - chmod 755 ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh - ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh xenial dependencies: - ci:ubuntu_xenial allow_failure: false only: - master - develop - /^release-.*$/ - /^hotfix-.*$/ - tags - web when: on_success artifacts: paths: - ./*.deb tags: - docker - sci - ubuntu ############################ # ubuntu bionic pipeline ############################ ci:ubuntu_bionic: stage: ci script: - docker build --force-rm --build-arg MDANSE_GIT_COMMIT=${CI_COMMIT_SHA} --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t ci_mdanse_bionic -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-bionic/Dockerfile_build . allow_failure: false tags: - docker - sci - ubuntu deploy:ubuntu_bionic: stage: deploy script: - docker build --force-rm --build-arg MDANSE_GIT_BRANCH_NAME=${CI_COMMIT_REF_NAME} -t deploy_mdanse_bionic -f ${CI_PROJECT_DIR}/BuildServer/Docker/Builder/Ubuntu-bionic/Dockerfile_deploy . - chmod 755 ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh - ${CI_PROJECT_DIR}/BuildServer/Docker/upload_artefacts.sh bionic dependencies: - ci:ubuntu_bionic allow_failure: false only: - master - develop - /^release-.*$/ - /^hotfix-.*$/ - tags - web when: on_success artifacts: paths: - ${CI_PROJECT_DIR}/*.deb tags: - docker - sci - ubuntu ############################ # osx high sierra pipeline ############################ ci:osx: stage: ci script: - source ${CI_PROJECT_DIR}/BuildServer/Unix/MacOS/definitions.sh - source ${CI_PROJECT_DIR}/BuildServer/Unix/MacOS/version.sh - ${CI_PROJECT_DIR}/BuildServer/Unix/build.sh - ${CI_PROJECT_DIR}/BuildServer/Unix/tests.sh allow_failure: false artifacts: paths: - ${CI_PROJECT_DIR}/build expire_in: 1 hrs tags: - sci - osx-10.13 deploy:osx: stage: deploy script: - source ${CI_PROJECT_DIR}/BuildServer/Unix/MacOS/definitions.sh - source ${CI_PROJECT_DIR}/BuildServer/Unix/MacOS/version.sh - ${CI_PROJECT_DIR}/BuildServer/Unix/MacOS/deploy.sh dependencies: - ci:osx allow_failure: false only: - master - develop - /^release-.*$/ - /^hotfix-.*$/ - tags - web when: on_success artifacts: paths: - ${CI_PROJECT_DIR}/*.dmg tags: - sci - osx-10.13 ############################ # windows 10 pipeline # "call" is mandatory, see https://gitlab.com/gitlab-org/gitlab-runner/issues/1051 ############################ ci:windows: stage: ci script: - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\definitions.bat" - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\version.bat" - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\build.bat" - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\tests.bat" allow_failure: false artifacts: paths: - "%CI_PROJECT_DIR%\\BuildServer\\Windows\\Build" expire_in: 1 hrs tags: - sci - windows-10 deploy:windows: stage: deploy script: - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\definitions.bat" - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\version.bat" - call "%CI_PROJECT_DIR%\\BuildServer\\Windows\\deploy.bat" dependencies: - ci:windows allow_failure: false only: - master - develop - /^release-.*$/ - /^hotfix-.*$/ - tags - web when: on_success artifacts: paths: - "%CI_PROJECT_DIR%\\*.exe" tags: - sci - windows-10 docker_logout: stage: docker_logout when: always script: - docker logout tags: - docker - sci - ubuntu