Skip to content

Commit 1e7cf65

Browse files
committed
feat: modify sbom workflow to push to the repo instead of creating action's artifact
1 parent 210997d commit 1e7cf65

File tree

1 file changed

+24
-39
lines changed

1 file changed

+24
-39
lines changed

.github/workflows/sbom.yml

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1-
name: SBOM
2-
3-
permissions:
4-
contents: read
1+
name: SBOM
52

63
on:
74
workflow_dispatch:
8-
pull_request:
5+
push:
6+
branches:
7+
- master
8+
- fix/sbom_into_repository
9+
10+
permissions:
11+
contents: write
912

1013
jobs:
1114
sbom:
1215
runs-on: ubuntu-latest
13-
16+
1417
steps:
1518
- name: Checkout repository
1619
uses: actions/checkout@v4
20+
with:
21+
persist-credentials: false
22+
fetch-depth: 0
1723

18-
# Caches Gradle dependencies to avoid downloading them on every run
1924
- name: Cache Gradle dependencies
2025
uses: actions/cache@v4
2126
with:
@@ -33,42 +38,22 @@ jobs:
3338
java-version: '17'
3439
distribution: 'temurin'
3540

36-
- name: Install xsltproc
37-
run: |
38-
sudo apt-get update
39-
sudo apt-get install -y xsltproc
40-
41-
# Use --no-daemon to prevent Gradle from running in the background
4241
- name: Generate SBOM (CycloneDX)
4342
run: ./gradlew --no-daemon cyclonedxBom
4443

45-
- name: Convert SBOM to HTML
46-
run: xsltproc sbom/cyclonedx-xml-to-html.xslt build/reports/bom.xml > sbom.html
47-
48-
# Create a specific artifact name using the branch name and timestamp
49-
- name: Set artifact name
50-
id: vars
51-
run: |
52-
BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}"
53-
SAFE_BRANCH=$(echo "$BRANCH" | tr '/' '-' | tr '[:upper:]' '[:lower:]')
54-
TIMESTAMP=$(date -u +"%Y%m%d-%H%M%S")
55-
echo "artifact_name=sbom-${SAFE_BRANCH}-${TIMESTAMP}" >> $GITHUB_OUTPUT
56-
57-
- name: Rename SBOM XML and HTML files to match artifact name
58-
run: |
59-
mv sbom.html "${{ steps.vars.outputs.artifact_name }}.html"
60-
mv build/reports/bom.xml "${{ steps.vars.outputs.artifact_name }}.xml"
61-
mv build/reports/bom.json "${{ steps.vars.outputs.artifact_name }}.json"
44+
- name: Move and rename SBOM to root
45+
run: mv build/reports/bom.json ./sbom.json
6246

63-
- name: ZIP all the files
47+
- name: Clean serialNumber and timestamp in SBOM
6448
run: |
65-
zip "${{ steps.vars.outputs.artifact_name }}.zip" \
66-
"${{ steps.vars.outputs.artifact_name }}.html" \
67-
"${{ steps.vars.outputs.artifact_name }}.xml" \
68-
"${{ steps.vars.outputs.artifact_name }}.json"
49+
sudo apt-get update && sudo apt-get install -y jq
50+
jq 'del(.serialNumber, .timestamp)' sbom.json > sbom_clean.json && mv sbom_clean.json sbom.json
6951
70-
- name: Upload SBOM artifact
71-
uses: actions/upload-artifact@v4
52+
- name: Commit files
53+
uses: GuillaumeFalourd/git-commit-push@v1.3
7254
with:
73-
name: ${{ steps.vars.outputs.artifact_name }}
74-
path: ${{ steps.vars.outputs.artifact_name }}.zip
55+
email: devops@owncloud.com
56+
name: ownClouders
57+
commit_message: "docs: SBOM updated"
58+
files: sbom.json
59+
access_token: ${{ github.token }}

0 commit comments

Comments
 (0)