forked from OpenSCAP/scap-workbench
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtox.ini
141 lines (121 loc) · 4.45 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
[tox]
envlist = oscap,content,install,product,sync,clean,depclean
skip_missing_interpreters = true
isolated_build = true
skipsdist = true
min_version = 4.3.3
[base]
deps =
pip>=22.1
build
cmake
ninja
[testenv]
skip_install = true
install_command = pip install {opts} {packages}
#basepython= python3.9
[testenv:{oscap,content,install,product}]
envdir = {toxinidir}/.venv
# these tox env cmds share a virtual env using the following plugin in toxfile.py
# https://github.com/masenf/tox-ignore-env-name-mismatch
runner = ignore_env_name_mismatch
description =
{oscap,content}: Install required oscap lib or content dependencies into shared {env:PREFIX} path
product: Run build_product to install a single product instead of ALL products (default: openembedded)
install: Install scap workbench into shared {env:PREFIX} path (requires Qt5 xmlpatterns)
allowlist_externals =
bash
deps =
{[base]deps}
ext/ymltoxml
#ext/pyserv
-r ext/content/requirements-base.txt
setenv =
CC = {env:CC:gcc}
CXX = {env:CXX:g++}
CPUS = {env:CPUS:4}
{oscap,content,install,product}: WITH_RPATH = {env:LOCAL_INSTALL_WITH_RPATH:ON}
BUILD_TYPE = {env:BUILD_TYPE:Release}
PREFIX = {env:PREFIX:{envdir}}
{content,install,product}: PYTHONPATH = {toxinidir}
{content,install,product}: OPENSCAP_ROOT_DIR = {env:PREFIX:{envdir}}
{content,product}: XSLT_PREFIX = {env:XSLT_PREFIX:{envdir}}
PYTHONWARNINGS = ignore
oscap: SRC_PATH = {env:L_SRC_PATH:ext/oscap}
content: SRC_PATH = {env:C_SRC_PATH:ext/content}
product: SRC_PATH = {env:C_SRC_PATH:ext/content}
install: OPENSCAP_VERSION = {env:OPENSCAP_VERSION:1.3.11}
{content,install,product}: LD_LIBRARY_PATH = {env:LD_LIBRARY_PATH:{env:PREFIX}/lib{:}{env:PREFIX}/lib64}
{content,install,product}: PKG_CONFIG_PATH = {env:PREFIX}/lib64/pkgconfig
passenv =
CFLAGS
CXXFLAGS
LDFLAGS
LD
AR
NM
RANLIB
PYTHON
DISPLAY
XAUTHORITY
HOME
USERNAME
USER
CI
XDG_*
GITHUB*
PIP_DOWNLOAD_CACHE
changedir =
{oscap,content,product}: {env:SRC_PATH}
commands =
oscap: cmake -G {posargs:"Unix Makefiles"} -S . -B build -DCMAKE_BUILD_TYPE={env:BUILD_TYPE} -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX={env:PREFIX} -DBUILD_SHARED_LIBS=OFF -DLOCAL_INSTALL_WITH_RPATH={env:WITH_RPATH}
content: cmake -G {posargs:"Unix Makefiles"} -S . -B build -DCMAKE_BUILD_TYPE={env:BUILD_TYPE} -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX={env:PREFIX} -DLOCAL_INSTALL_WITH_RPATH={env:WITH_RPATH}
product: cmake -G {posargs:"Unix Makefiles"} -S . -B build -DCMAKE_BUILD_TYPE={env:BUILD_TYPE} -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX={env:PREFIX} -DLOCAL_INSTALL_WITH_RPATH={env:WITH_RPATH} -DENABLE_PYTHON_COVERAGE=OFF -DSSG_PRODUCT_DEFAULT=OFF -DSSG_PRODUCT_OPENEMBEDDED=ON
install: cmake -G {posargs:"Unix Makefiles"} -S . -B build -DOPENSCAP_VERSION:STRING={env:OPENSCAP_VERSION} -DOPENSCAP_LIBRARIES:PATH={env:PREFIX}/lib64/libopenscap.so -DOPENSCAP_INCLUDE_DIRS:PATH={env:PREFIX}/include/openscap -DCMAKE_BUILD_TYPE={env:BUILD_TYPE} -DLOCAL_INSTALL_WITH_RPATH={env:WITH_RPATH} -DCMAKE_INSTALL_PREFIX={env:PREFIX}
cmake --build build -j {env:CPUS} --target install
install: bash -c 'oscap --version | head -n1'
#product: bash {toxinidir}/ext/content/build_product {posargs:"openembedded"}
[testenv:sync]
skip_install = true
description =
Install repolite and use it for handling workflow deps => openscap, SSG, python tools
passenv =
REPO_CFG
DISPLAY
XAUTHORITY
HOME
USERNAME
USER
CI
LANG
LC_COLLATE
SSH_*
GID
UID
XDG_*
PIP_DOWNLOAD_CACHE
deps =
# logging_tree
pip>=22.1
repolite @ https://github.com/sarnold/repolite/releases/download/0.6.2/repolite-0.6.2-py3-none-any.whl
commands =
repolite {posargs:--quiet}
[testenv:{clean,depclean}]
# these tox env cmds share a virtual env using the following plugin
# https://github.com/masenf/tox-ignore-env-name-mismatch
envdir = {toxworkdir}/clean
runner = ignore_env_name_mismatch
skip_install = true
description =
clean: Clean the cmake build tree
depclean: Clean the dependent cmake build trees
setenv =
depclean: L_SRC_PATH = {env:L_SRC_PATH:ext/oscap}
depclean: C_SRC_PATH = {env:C_SRC_PATH:ext/content}
allowlist_externals =
bash
deps =
pip>=21.1
commands =
clean: bash -c 'rm -rf .tox/venv build/* dist/ __pycache__/'
depclean: bash -c 'rm -rf {env:L_SRC_PATH}/build/* {env:C_SRC_PATH}/build/*'