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

[ci] update

parent 798095b8
Branches
No related tags found
No related merge requests found
Checking pipeline status
#! /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