Skip to content

Commit 8126a9b

Browse files
committed
build: transparency on package versions
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 65933cd commit 8126a9b

File tree

5 files changed

+44
-1
lines changed

5 files changed

+44
-1
lines changed

.github/workflows/deploy.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ jobs:
151151
retry_wait_seconds: 300
152152
continue_on_error: true
153153
command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release_latest
154+
- name: Update package versions
155+
run: make generate_latest_sbom
154156
- name: Tag browser images
155157
if: github.event.inputs.skip-build-push-image != 'true'
156158
uses: nick-invision/retry@master
@@ -201,4 +203,6 @@ jobs:
201203
prerelease: ${{ env.PRERELEASE }}
202204
draft: false
203205
append_body: false
204-
files: ${{ env.PUBLISH_YAML_MANIFESTS }}
206+
files: |
207+
package_versions.txt
208+
${{ env.PUBLISH_YAML_MANIFESTS }}

.github/workflows/nightly.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ jobs:
113113
max_attempts: 3
114114
retry_wait_seconds: 120
115115
command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release_nightly
116+
- name: Update package versions
117+
run: make generate_nightly_sbom
116118
- name: Push Helm chart to registry
117119
uses: nick-invision/retry@master
118120
with:
@@ -151,6 +153,7 @@ jobs:
151153
name: "Nightly"
152154
body_path: "release_notes.md"
153155
files: |
156+
package_versions.txt
154157
${{ env.CHART_PACKAGE_PATH }}
155158
generate_release_notes: true
156159
draft: false

Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ CURRENT_PLATFORM := $(shell if [ `arch` = "aarch64" ]; then echo "linux/arm64";
2525
PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))
2626
SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)
2727
CHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest)
28+
SBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt)
2829

2930
all: hub \
3031
distributor \
@@ -341,6 +342,9 @@ release_latest:
341342
docker push $(NAME)/standalone-docker:latest
342343
docker push $(NAME)/video:latest
343344

345+
generate_latest_sbom:
346+
NAME=$(NAME) FILTER_IMAGE_TAG=latest OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh
347+
344348
tag_nightly:
345349
docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:nightly
346350
docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:nightly
@@ -383,6 +387,9 @@ release_nightly:
383387
docker push $(NAME)/standalone-docker:nightly
384388
docker push $(NAME)/video:nightly
385389

390+
generate_nightly_sbom:
391+
NAME=$(NAME) FILTER_IMAGE_TAG=nightly OUTPUT_FILE=$(SBOM_OUTPUT) ./generate_sbom.sh
392+
386393
tag_major_minor:
387394
docker tag $(NAME)/base:$(TAG_VERSION) $(NAME)/base:$(MAJOR)
388395
docker tag $(NAME)/hub:$(TAG_VERSION) $(NAME)/hub:$(MAJOR)

generate_sbom.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
NAMESPACE=${NAME:-selenium}
4+
FILTER_IMAGE_TAG=${FILTER_IMAGE_TAG:-"*"}
5+
OUTPUT_FILE=${OUTPUT_FILE:-"package_versions.txt"}
6+
7+
# List all Docker images matching tag
8+
images=$(docker images --filter=reference=${NAMESPACE}'/*:'${FILTER_IMAGE_TAG} --format "{{.Repository}}:{{.Tag}}")
9+
10+
# Check if there are any images
11+
if [ -z "$images" ]; then
12+
echo "No Docker images found."
13+
exit 1
14+
fi
15+
16+
echo -n "" >${OUTPUT_FILE}
17+
# Iterate through each image and generate SBOM
18+
for image in $images; do
19+
echo "Generating SBOM for image: $image"
20+
echo "==================== $image ====================" >>${OUTPUT_FILE}
21+
docker sbom $image >>${OUTPUT_FILE}
22+
echo "" >>${OUTPUT_FILE}
23+
done
24+
25+
echo "SBOM generation completed for all images."

tests/charts/make/chart_setup_env.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ chmod +x ./docker-compose
5757
sudo mv ./docker-compose /usr/libexec/docker/cli-plugins
5858
docker compose version
5959
echo "==============================="
60+
echo "Install Docker SBOMs plugin"
61+
curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sh -s --
62+
docker sbom --version
63+
echo "==============================="
6064
if [ "${CLUSTER}" = "kind" ]; then
6165
echo "Installing kind for AMD64 / ARM64"
6266
curl -fsSL -o ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-$(dpkg --print-architecture)

0 commit comments

Comments
 (0)