8 Commits
Author SHA1 Message Date
matthias 63c0599045 chore: replace Syft with Trivy for SBOM generation in build and release workflows
KIWI-NG Lint & Build / kiwi-job (push) Successful in 2m46s
KIWI-NG Release & Harvester Deployment / release (push) Successful in 2m40s
2026-08-16 11:33:18 +02:00
matthias a399cde4d2 chore: update syft SBOM output formats to spdx-json@2.2 and cyclonedx-json@1.6
KIWI-NG Lint & Build / kiwi-job (push) Successful in 2m59s
2026-08-16 10:48:42 +02:00
matthias 2ee4348598 feat: add CycloneDX SBOM generation to build and release workflows
KIWI-NG Lint & Build / kiwi-job (push) Successful in 2m58s
2026-08-16 10:38:37 +02:00
matthias d0c87455e5 feat: integrate Syft into build and release pipelines to generate and upload SPDX SBOMs
KIWI-NG Lint & Build / kiwi-job (push) Successful in 3m12s
2026-08-16 10:19:07 +02:00
matthias 3fec296130 .gitea/workflows/kiwi-release.yaml aktualisiert
KIWI-NG Lint & Build / kiwi-job (push) Successful in 2m50s
2026-08-16 07:51:27 +00:00
matthias be1780b3c0 .gitea/workflows/kiwi-release.yaml aktualisiert
KIWI-NG Lint & Build / kiwi-job (push) Successful in 3m13s
2026-08-14 20:13:54 +00:00
matthias b3475b403f refactor: remove locale and vconsole configuration to simplify image initialization
KIWI-NG Lint & Build / kiwi-job (push) Successful in 3m3s
KIWI-NG Release & Harvester Deployment / release (push) Successful in 2m45s
2026-08-07 03:31:42 +02:00
matthias 3bf7d6e238 refactor: update Harvester URL and variable syntax in release workflow and remove self-referencing path ignore in build workflow
KIWI-NG Lint & Build / kiwi-job (push) Successful in 2m58s
KIWI-NG Release & Harvester Deployment / release (push) Successful in 2m47s
2026-08-07 02:21:04 +02:00
3 changed files with 28 additions and 17 deletions
+12 -3
View File
@@ -7,14 +7,12 @@ on:
- 'README.md'
- 'docs/**'
- '.gitignore'
- '.gitea/workflows/kiwi-release.yaml'
pull_request:
branches: [ "main", "master" ]
paths-ignore:
- 'README.md'
- 'docs/**'
- '.gitignore'
- '.gitea/workflows/kiwi-release.yaml'
jobs:
kiwi-job:
@@ -36,7 +34,11 @@ jobs:
zypper if python3-kiwi
echo "========================"
zypper --non-interactive in nodejs libxml2-tools git
zypper --non-interactive in nodejs libxml2-tools git curl
- name: Install Trivy
run: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
- name: Checkout Repository
uses: actions/checkout@v7
@@ -64,6 +66,11 @@ jobs:
--bundle-dir ./dist \
--id gitea-build-${{ steps.vars.outputs.sha_short }}
- name: Generate SBOM
run: |
trivy fs --format spdx-json --output ./dist/openSUSE-Leap-16.0-Minimal-gitea-build-${{ steps.vars.outputs.sha_short }}.spdx.json /tmp/build/build/image-root
trivy fs --format cyclonedx --output ./dist/openSUSE-Leap-16.0-Minimal-gitea-build-${{ steps.vars.outputs.sha_short }}.cdx.json /tmp/build/build/image-root
- name: Upload Disk Image
uses: actions/upload-artifact@v7
with:
@@ -79,4 +86,6 @@ jobs:
./dist/*.packages
./dist/*.changes
./dist/*.verified
./dist/*.spdx.json
./dist/*.cdx.json
retention-days: 7
+14 -3
View File
@@ -17,6 +17,10 @@ jobs:
run: |
zypper --non-interactive in nodejs libxml2-tools git curl jq
- name: Install Trivy
run: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
- name: Checkout Repository
uses: actions/checkout@v7
@@ -29,6 +33,11 @@ jobs:
kiwi-ng --profile Cloud system build --description ./opensuse-leap-16-minimal --target-dir /tmp/build
kiwi-ng result bundle --target-dir /tmp/build --bundle-dir ./dist --id ${{ github.ref_name }}
- name: Generate SBOM
run: |
trivy fs --format spdx-json --output ./dist/openSUSE-Leap-16.0-Minimal-${{ github.ref_name }}.spdx.json /tmp/build/build/image-root
trivy fs --format cyclonedx --output ./dist/openSUSE-Leap-16.0-Minimal-${{ github.ref_name }}.cdx.json /tmp/build/build/image-root
# 1. Gitea Release erstellen und Image-Datei als Asset anhängen
- name: Create Gitea Release
uses: akkuman/gitea-release-action@v1
@@ -41,11 +50,13 @@ jobs:
files: |-
./dist/*.qcow2
./dist/*.raw.xz
./dist/*.spdx.json
./dist/*.cdx.json
# 2. Harvester triggern (zieht sich die Datei aus dem Release)
- name: Trigger Harvester Download
env:
HARVESTER_URL: "https://dein-harvester-cluster.domain.de"
HARVESTER_URL: ${{ secrets.HARVESTER_URL }}
HARVESTER_TOKEN: ${{ secrets.HARVESTER_TOKEN }}
NAMESPACE: "default"
run: |
@@ -66,8 +77,8 @@ jobs:
"namespace": "'"${NAMESPACE}"'"
},
"spec": {
"displayName": "openSUSE Leap 16.0 Minimal ('"${github.ref_name}"')",
"description": "Gebaute KIWI-NG Vorlage aus Tag '"${github.ref_name}"'",
"displayName": "openSUSE-Leap-16.0-Minimal-${{ github.ref_name }}",
"description": "Gebaute KIWI-NG Vorlage aus Tag ${{ github.ref_name }}",
"sourceType": "download",
"url": "'"${DOWNLOAD_URL}"'"
}
+2 -11
View File
@@ -64,19 +64,10 @@ baseSetRunlevel 3
#--------------------------------------
suseImportBuildKey
# 1. Alle Locale-Variablen (inkl. LC_MESSAGES) vollständig setzen
cat <<'EOF' > /etc/locale.conf
LANG=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_ALL=en_US.UTF-8
EOF
# 2. Keymap und Hostname vordefinieren
echo "KEYMAP=us" > /etc/vconsole.conf
# 1. Hostname vordefinieren
echo "rke2-node" > /etc/hostname
ln -sf /usr/share/zoneinfo/Europe/Zurich /etc/localtime
# 3. Der entscheidende Trick für systemd: "Preset" als initialisiert markieren
# 2. Der entscheidende Trick für systemd: "Preset" als initialisiert markieren
# Eine leere /etc/machine-id ODER /etc/machine-info signalisiert systemd,
# dass Firstboot bereits gelaufen ist.
echo "uninitialized" > /etc/machine-id