-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
58 lines (51 loc) · 1.58 KB
/
.gitlab-ci.yml
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
image: python
stages:
- lint
- unittest
- sectest
- build
- splunktest
delint:
stage: lint
before_script:
- pip install pylint
- pip install requests
script:
- pylint ${CI_PROJECT_DIR}/bin/*.py
tags:
- docker
unittest:
stage: unittest
before_script:
- pip install addonfactory-splunk-conf-parser-lib
script:
- python ${CI_PROJECT_DIR}/tests/test_conf_checker.py
tags:
- docker
sectests:
stage: sectest
before_script:
- pip install bandit
script:
- bandit -r -x ${CI_PROJECT_DIR}/bin/defusedxml ${CI_PROJECT_DIR}/bin
tags:
- docker
build:
stage: build
script:
- git archive --prefix ${CI_PROJECT_NAME}/ --format tar.gz ${CI_COMMIT_SHA} -o ${CI_PROJECT_NAME}.spl
artifacts:
paths:
- ${CI_PROJECT_NAME}.spl
splunktest:
stage: splunktest
image: python:3.7
script:
- pip install splunk-appinspect
- mkdir /tmp/${CI_PROJECT_NAME}
- git archive --format tar HEAD | tar --exclude="*/node_modules" --exclude="./tests/" --exclude="*/jsx" --exclude=".*" --exclude="*/*.pyc" --exclude="./local/" --exclude="./metadata/local.meta" -xC /tmp/${CI_PROJECT_NAME}
- splunk-appinspect inspect /tmp/${CI_PROJECT_NAME} --mode precert --included-tags cloud
- splunk-appinspect inspect /tmp/${CI_PROJECT_NAME} --mode precert --included-tags cloud |grep "error:\\s 0\|failure:\s 0"
- echo "Pay attention to the values above ^^ both will cause your app to be rejected if they're > 0"
tags:
- docker