This commit is contained in:
@@ -42,10 +42,27 @@ jobs:
|
||||
npm run build
|
||||
- name: Validate compose
|
||||
run: docker compose config --quiet
|
||||
- name: Resolve immutable build identity
|
||||
run: |
|
||||
openapi_version="$(awk '/^ version:/{print $2; exit}' openapi/openapi.yaml)"
|
||||
test -n "$openapi_version"
|
||||
echo "PLATFORM_BUILD_VERSION=${openapi_version}-ci.${GITHUB_RUN_NUMBER}" >> "$GITHUB_ENV"
|
||||
echo "PLATFORM_BUILD_COMMIT=${GITHUB_SHA}" >> "$GITHUB_ENV"
|
||||
echo "PLATFORM_BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_ENV"
|
||||
- name: Build backend image
|
||||
run: docker build -f deploy/backend.Dockerfile -t data-terminal-cloud-backend:test .
|
||||
run: >-
|
||||
docker build -f deploy/backend.Dockerfile
|
||||
--build-arg VERSION="$PLATFORM_BUILD_VERSION"
|
||||
--build-arg COMMIT="$PLATFORM_BUILD_COMMIT"
|
||||
--build-arg BUILD_TIME="$PLATFORM_BUILD_TIME"
|
||||
-t data-terminal-cloud-backend:test .
|
||||
- name: Build web image
|
||||
run: docker build -f deploy/web.Dockerfile -t data-terminal-cloud-web:test .
|
||||
run: >-
|
||||
docker build -f deploy/web.Dockerfile
|
||||
--build-arg VERSION="$PLATFORM_BUILD_VERSION"
|
||||
--build-arg COMMIT="$PLATFORM_BUILD_COMMIT"
|
||||
--build-arg BUILD_TIME="$PLATFORM_BUILD_TIME"
|
||||
-t data-terminal-cloud-web:test .
|
||||
- name: Go vulnerability and license policy
|
||||
run: |
|
||||
go install golang.org/x/vuln/cmd/govulncheck@v1.1.4
|
||||
@@ -79,7 +96,19 @@ jobs:
|
||||
run: |
|
||||
backend_digest="$(docker image inspect --format='{{.Id}}' data-terminal-cloud-backend:test)"
|
||||
web_digest="$(docker image inspect --format='{{.Id}}' data-terminal-cloud-web:test)"
|
||||
jq -n --arg source_commit "$GITHUB_SHA" --arg run_id "$GITHUB_RUN_ID" --arg run_attempt "$GITHUB_RUN_ATTEMPT" --arg backend_digest "$backend_digest" --arg web_digest "$web_digest" '{source_commit:$source_commit,run_id:$run_id,run_attempt:$run_attempt,backend_image_digest:$backend_digest,web_image_digest:$web_digest}' > artifacts/build-metadata.json
|
||||
backend_version="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.version"}}' data-terminal-cloud-backend:test)"
|
||||
backend_commit="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' data-terminal-cloud-backend:test)"
|
||||
backend_time="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.created"}}' data-terminal-cloud-backend:test)"
|
||||
web_version="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.version"}}' data-terminal-cloud-web:test)"
|
||||
web_commit="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.revision"}}' data-terminal-cloud-web:test)"
|
||||
web_time="$(docker image inspect --format='{{index .Config.Labels "org.opencontainers.image.created"}}' data-terminal-cloud-web:test)"
|
||||
test "$backend_version" = "$PLATFORM_BUILD_VERSION"
|
||||
test "$web_version" = "$PLATFORM_BUILD_VERSION"
|
||||
test "$backend_commit" = "$GITHUB_SHA"
|
||||
test "$web_commit" = "$GITHUB_SHA"
|
||||
test "$backend_time" = "$PLATFORM_BUILD_TIME"
|
||||
test "$web_time" = "$PLATFORM_BUILD_TIME"
|
||||
jq -n --arg candidate_version "$PLATFORM_BUILD_VERSION" --arg source_commit "$GITHUB_SHA" --arg build_time "$PLATFORM_BUILD_TIME" --arg run_id "$GITHUB_RUN_ID" --arg run_attempt "$GITHUB_RUN_ATTEMPT" --arg backend_digest "$backend_digest" --arg web_digest "$web_digest" '{candidate_version:$candidate_version,source_commit:$source_commit,build_time:$build_time,run_id:$run_id,run_attempt:$run_attempt,backend_image_digest:$backend_digest,web_image_digest:$web_digest}' > artifacts/build-metadata.json
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: security-and-sbom
|
||||
|
||||
Reference in New Issue
Block a user