File tree Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Original file line number Diff line number Diff line change @@ -123,6 +123,19 @@ jobs:
123
123
echo "Failed to install chosen grype version"
124
124
exit 1
125
125
fi
126
+ install_semgrep :
127
+ machine :
128
+ image : ubuntu-2404:current
129
+ steps :
130
+ - security/install_semgrep :
131
+ version : v1.121.0
132
+ - run :
133
+ name : Validate installation
134
+ command : |
135
+ if ! semgrep --version | grep -q "1.121.0"; then
136
+ echo "Failed to install chosen semgrep version"
137
+ exit 1
138
+ fi
126
139
127
140
workflows :
128
141
test-deploy :
@@ -171,6 +184,8 @@ workflows:
171
184
filters : *filters
172
185
- install_grype :
173
186
filters : *filters
187
+ - install_semgrep :
188
+ filters : *filters
174
189
- orb-tools/pack :
175
190
filters : *release-filters
176
191
- orb-tools/publish :
@@ -191,5 +206,6 @@ workflows:
191
206
- install_trivy
192
207
- install_syft
193
208
- install_grype
209
+ - install_semgrep
194
210
context : orb-publishing
195
211
filters : *release-filters
Original file line number Diff line number Diff line change
1
+ description : >
2
+ Install Semgrep (https://github.com/semgrep/semgrep) a fast open-source static
3
+ analysis tool.
4
+ Requires the runtime environment with Python 3 and Pip. Installs Semgrep in
5
+ the user-specific location, not system-wide.
6
+
7
+ parameters :
8
+ version :
9
+ type : string
10
+ default : " "
11
+ description : >
12
+ Choose the specific version of Semgrep from https://github.com/semgrep/semgrep/releases.
13
+ By default, the latest version is picked.
14
+
15
+ steps :
16
+ - run :
17
+ name : Install Semgrep
18
+ environment :
19
+ PARAM_STR_VERSION : <<parameters.version>>
20
+ command : <<include(scripts/install-semgrep.sh)>>
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ function install_semgrep() {
4
+ local semgrep_arg
5
+ local install_path
6
+
7
+ [[ -n " ${PARAM_STR_VERSION} " ]] && semgrep_arg=" semgrep==${PARAM_STR_VERSION# v} " || semgrep_arg=" semgrep"
8
+
9
+ set -x
10
+ # Installing without the '--user' flag results in the command not found error
11
+ # due to issue how pip installed packages are added to the PATH in CI environments.
12
+ # Adding the '--user' flag, (alongside the '--no-warn-script-location' to suppress
13
+ # the location warnings) installs the package in a user specific directory which
14
+ # is afterwards added to the PATH.
15
+ python3 -m pip install --no-warn-script-location --user " ${semgrep_arg} "
16
+ set +x
17
+
18
+ install_path=" $( python3 -m site --user-base) /bin"
19
+
20
+ echo " Adding Semgrep installation path (${install_path} ) to the PATH"
21
+ echo " export PATH=${install_path} :${PATH} " >> " ${BASH_ENV} "
22
+ }
23
+
24
+ if ! command -v python3 > /dev/null 2>&1 || ! command -v pip3 > /dev/null 2>&1 ; then
25
+ echo " Python 3 and Pip are required"
26
+ exit 1
27
+ fi
28
+
29
+ if ! command -v semgrep > /dev/null 2>&1 ; then
30
+ echo " Failed to detect Semgrep, installing..."
31
+
32
+ install_semgrep
33
+ fi
You can’t perform that action at this time.
0 commit comments