Skip to content
Snippets Groups Projects
Commit 1a601e23 authored by calrama's avatar calrama
Browse files

[ci] update

parent 798095b8
No related branches found
No related tags found
No related merge requests found
Pipeline #29469 passed
Pipeline: utility

#29474

    #! /usr/bin/env python3
    from os import environ as env
    from platform import system
    from subprocess import check_call, check_output
    from argparse import ArgumentParser
    def define(key: str, value: str):
    return ['-D', f'{key}={value}']
    def define_env(name: str):
    return define(name, env[name]) if name in env else []
    if system() == 'Windows':
    def setup_msvc():
    msvc_path = 'C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/Common7/Tools'
    lines = check_output(
    [
    'cmd',
    '/c',
    'VsDevCmd.bat',
    '-arch=amd64',
    f'-vcvars_ver={env["VCVARS_VER"]}',
    '&',
    'set'
    ],
    cwd=msvc_path
    ).decode('utf-8').splitlines()
    for line in lines:
    split = line.split('=')
    if len(split) != 2:
    continue
    key, value = split
    if key in env and env[key] == value:
    continue
    env[key] = value
    def build(args):
    if system() == 'Windows':
    setup_msvc()
    command = ['cmake']
    command += ['-S', '.']
    command += ['-B', 'build']
    command += ['-G', 'Ninja']
    command += define_env('CMAKE_BUILD_TYPE')
    command += define('CMAKE_SUPPRESS_REGENERATION', 'ON')
    command += define('CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY', 'ON')
    if system() == 'Windows':
    command += define(
    'CMAKE_TOOLCHAIN_FILE',
    env['VCPKG_DIR'] + '/scripts/buildsystems/vcpkg.cmake'
    )
    command += define('VCPKG_TARGET_TRIPLET', env['VCPKG_TRIPLET'])
    check_call(command)
    command = ['ninja', '-C', 'build']
    check_call(command)
    def package(args):
    command = ['ninja', '-C', 'build', 'package']
    check_call(command)
    if __name__ == '__main__':
    parser = ArgumentParser()
    subparsers = parser.add_subparsers()
    build_parser = subparsers.add_parser('build')
    build_parser.set_defaults(task=build)
    package_parser = subparsers.add_parser('package')
    package_parser.set_defaults(task=package)
    args = parser.parse_args()
    args.task(args)
    stages:
    - build
    - package
    - deploy
    - trigger
    .centos-7:
    tags: [ linux, docker ]
    image: git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:centos-7
    .centos:
    tags: [linux, docker]
    image: git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:centos
    .windows-1809:
    tags: [ windows-1809, docker ]
    image: git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:devel-windows-1809
    .gcc8: &gcc8
    CC: gcc-8
    CXX: g++-8
    .msvc15.9: &msvc15_9
    VCVARS_VER: '14.16'
    .windows:
    tags: [windows, docker]
    image: git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:devel-windows
    before_script:
    - . $Profile.AllUsersAllHosts
    .release: &release
    CMAKE_BUILD_TYPE: Release
    .debug: &debug
    CMAKE_BUILD_TYPE: Debug
    .build: &build
    stage: build
    artifacts:
    paths:
    - build
    expire_in: 1 day
    script: ./.gitlab-ci.py build
    build centos-7:
    extends: .centos-7
    <<: *build
    variables:
    <<: [ *release ]
    build windows-1809:
    extends: .windows-1809
    <<: *build
    variables:
    <<: [ *msvc15_9, *release ]
    build windows-1809[debug]:
    extends: .windows-1809
    <<: *build
    variables:
    <<: [ *msvc15_9, *debug ]
    script:
    - ./ci/configure.py
    - ./ci/compile.py
    .package: &package
    stage: package
    ......@@ -59,28 +32,36 @@ build windows-1809[debug]:
    paths:
    - build/*.tar.xz
    expire_in: 1 week
    script: ./.gitlab-ci.py package
    script:
    - ./ci/package.py
    package centos-7:
    extends: .centos-7
    dependencies:
    - build centos-7
    <<: *package
    build centos:
    extends: .centos
    <<: *build
    variables:
    <<: [*release]
    package windows-1809:
    extends: .windows-1809
    build windows:
    extends: .windows
    <<: *build
    variables:
    <<: [*release]
    package centos:
    extends: .centos
    dependencies:
    - build windows-1809
    - build centos
    <<: *package
    package windows-1809[debug]:
    extends: .windows-1809
    package windows:
    extends: .windows
    dependencies:
    - build windows-1809[debug]
    - build windows
    <<: *package
    trigger biotracker/utility:
    stage: deploy
    stage: trigger
    only:
    - master
    trigger:
    project: bioroboticslab/biotracker/utility
    #! /usr/bin/env python3
    from subprocess import check_call
    if __name__ == "__main__":
    command = ["ninja", "-C", "build"]
    check_call(command)
    #! /usr/bin/env python3
    from os import environ as env
    from subprocess import check_call
    def define(key: str, value: str):
    return ["-D", f"{key}={value}"]
    def define_env(name: str):
    return define(name, env[name]) if name in env else []
    if __name__ == "__main__":
    command = ["cmake"]
    command += ["-S", "."]
    command += ["-B", "build"]
    command += ["-G", "Ninja"]
    command += define_env("CMAKE_BUILD_TYPE")
    command += define_env("CMAKE_TOOLCHAIN_FILE")
    command += define("CMAKE_SUPPRESS_REGENERATION", "ON")
    command += define("CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY", "ON")
    command += define_env("VCPKG_TARGET_TRIPLET")
    check_call(command)
    #! /usr/bin/env python3
    from subprocess import check_call
    if __name__ == "__main__":
    command = ["ninja", "-C", "build", "package"]
    check_call(command)
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment