@@ -3,24 +3,23 @@ name: Dev | Build SBOM
3
3
on :
4
4
push :
5
5
branches-ignore :
6
- - ' main'
6
+ - " main"
7
7
pull_request :
8
8
branches-ignore :
9
- - ' main'
9
+ - " main"
10
10
workflow_dispatch :
11
11
12
12
env :
13
- TOOL_NAME : ${{ github.repository }}
14
- SUPPLIER_NAME : Interlynk
15
- SUPPLIER_URL : https://interlynk.io
16
- DEFAULT_TAG : v0.0.1
17
- PYLYNK_TEMP_DIR : $RUNNER_TEMP/pylynk
18
- SBOM_TEMP_DIR : $RUNNER_TEMP/sbom
19
- SBOM_ENV : development
20
- MS_SBOM_TOOL_URL : https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
21
- MS_SBOM_SBOM_PATH : $RUNNER_TEMP/sbom/_manifest/spdx_2.2/manifest.spdx.json
22
- SBOM_EXCLUDE_DIRS : " **/samples/**"
23
-
13
+ TOOL_NAME : ${{ github.repository }}
14
+ SUPPLIER_NAME : Interlynk
15
+ SUPPLIER_URL : https://interlynk.io
16
+ DEFAULT_TAG : v0.0.1
17
+ PYLYNK_TEMP_DIR : $RUNNER_TEMP/pylynk
18
+ SBOM_TEMP_DIR : $RUNNER_TEMP/sbom
19
+ SBOM_ENV : development
20
+ SBOM_FILE_PATH : $RUNNER_TEMP/sbom/_manifest/spdx_2.2/manifest.spdx.json
21
+ MS_SBOM_TOOL_URL : https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
22
+ MS_SBOM_TOOL_EXCLUDE_DIRS : " **/samples/**"
24
23
25
24
jobs :
26
25
build-sbom :
@@ -31,19 +30,18 @@ jobs:
31
30
contents : write
32
31
steps :
33
32
- name : Checkout Repository
34
- uses : actions/checkout@v3
33
+ uses : actions/checkout@v3
35
34
with :
36
- fetch-depth : 0
35
+ fetch-depth : 0
37
36
38
37
- name : Get Tag
39
38
id : get_tag
40
39
run : echo "LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo 'v0.0.1')" >> $GITHUB_ENV
41
40
42
-
43
41
- name : Set up Python
44
42
uses : actions/setup-python@v4
45
43
with :
46
- python-version : ' 3.x' # Specify the Python version needed
44
+ python-version : " 3.x" # Specify the Python version needed
47
45
48
46
- name : Checkout Python SBOM tool
49
47
run : |
53
51
latest_tag=$(git describe --tags `git rev-list --tags --max-count=1`)
54
52
git checkout $latest_tag
55
53
echo "Checked out pylynk at tag: $latest_tag"
56
-
54
+
57
55
- name : Install Python dependencies
58
56
run : |
59
57
cd ${{ env.PYLYNK_TEMP_DIR }}
66
64
mkdir -p ${{ env.SBOM_TEMP_DIR}}
67
65
curl -Lo $RUNNER_TEMP/sbom-tool ${{ env.MS_SBOM_TOOL_URL }}
68
66
chmod +x $RUNNER_TEMP/sbom-tool
69
- $RUNNER_TEMP/sbom-tool generate -b ${{ env.SBOM_TEMP_DIR }} -bc . -pn ${{ env.TOOL_NAME }} -pv ${{ env.LATEST_TAG }} -ps ${{ env.SUPPLIER_NAME}} -nsb ${{ env.SUPPLIER_URL }} -cd "--DirectoryExclusionList ${{ env.SBOM_EXCLUDE_DIRS }}"
67
+ SANITIZED_REF=$(echo "${{ github.ref_name}}" | sed -e 's/[^a-zA-Z0-9.-]/-/g' -e 's/^[^a-zA-Z0-9]*//g')
68
+ VERSION=${{ env.LATEST_TAG }}-$SANITIZED_REF
69
+ $RUNNER_TEMP/sbom-tool generate -b ${{ env.SBOM_TEMP_DIR }} -bc . -pn ${{ env.TOOL_NAME }} -pv $VERSION -ps ${{ env.SUPPLIER_NAME}} -nsb ${{ env.SUPPLIER_URL }} -cd "--DirectoryExclusionList ${{ env.MS_SBOM_TOOL_EXCLUDE_DIRS }}"
70
70
71
- - name : Upload SBOM
71
+ - name : Upload SBOM
72
72
run : |
73
- python3 ${{ env.PYLYNK_TEMP_DIR }}/pylynk.py --verbose upload --prod ${{env.TOOL_NAME}} --env ${{ env.SBOM_ENV }} --sbom ${{ env.MS_SBOM_SBOM_PATH }} --token ${{ secrets.INTERLYNK_SECURITY_TOKEN }}
74
-
73
+ python3 ${{ env.PYLYNK_TEMP_DIR }}/pylynk.py --verbose upload --prod ${{env.TOOL_NAME}} --env ${{ env.SBOM_ENV }} --sbom ${{ env.SBOM_FILE_PATH }} --token ${{ secrets.INTERLYNK_SECURITY_TOKEN }}
0 commit comments