Skip to content

Commit a8b38ab

Browse files
Replace trivy scan in build.yml
1 parent f80877b commit a8b38ab

File tree

1 file changed

+73
-6
lines changed

1 file changed

+73
-6
lines changed

.github/workflows/build.yml

+73-6
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ jobs:
310310
GITHUB_EMAIL: [email protected]
311311
VERSION: ${{ needs.configuration.outputs.version }}
312312

313-
trivy-scan:
313+
vulnerability-scan:
314314
name: "Scan Images for Vulnerabilities"
315315
needs:
316316
- configuration
@@ -330,14 +330,81 @@ jobs:
330330
- name: Scan Images for Vulnerabilities
331331
shell: bash
332332
env:
333-
INSTALLER_IMAGE_BASE_REPO: ${{needs.configuration.outputs.image_repo_base}}
333+
NODE_OPTIONS: "--max_old_space_size=4096"
334+
JAVA_HOME: /home/gitpod/.sdkman/candidates/java/current
335+
VERSION: ${{needs.configuration.outputs.version}}
336+
PR_NO_CACHE: ${{needs.configuration.outputs.build_no_cache}}
337+
PR_NO_TEST: ${{needs.configuration.outputs.build_no_test}}
338+
NPM_AUTH_TOKEN: "${{ secrets.NPM_AUTH_TOKEN }}"
339+
PUBLISH_TO_NPM: ${{ needs.configuration.outputs.publish_to_npm == 'true' || needs.configuration.outputs.is_main_branch == 'true' }}
340+
JB_MARKETPLACE_PUBLISH_TOKEN: "${{ secrets.JB_MARKETPLACE_PUBLISH_TOKEN }}"
341+
PUBLISH_TO_JBPM: ${{ needs.configuration.outputs.publish_to_jbmp == 'true' || needs.configuration.outputs.is_main_branch == 'true' }}
342+
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}"
343+
LEEWAY_REMOTE_CACHE_BUCKET: ${{needs.configuration.outputs.leeway_cache_bucket}}
344+
IMAGE_REPO_BASE: ${{needs.configuration.outputs.image_repo_base}}/build
345+
346+
# SCM tokens for integration tests
347+
GITPOD_TEST_TOKEN_BITBUCKET: "${{ secrets.GITPOD_TEST_TOKEN_BITBUCKET }}"
348+
GITPOD_TEST_TOKEN_BITBUCKET_SERVER: "${{ secrets.GITPOD_TEST_TOKEN_BITBUCKET_SERVER }}"
349+
GITPOD_TEST_TOKEN_BITBUCKET_SERVER_WRITE: "${{ secrets.GITPOD_TEST_TOKEN_BITBUCKET_SERVER_WRITE }}"
350+
GITPOD_TEST_TOKEN_BITBUCKET_SERVER_READ: "${{ secrets.GITPOD_TEST_TOKEN_BITBUCKET_SERVER_READ }}"
351+
GITPOD_TEST_TOKEN_GITHUB: "${{ secrets.GITPOD_TEST_TOKEN_GITHUB }}"
352+
GITPOD_TEST_TOKEN_GITLAB: "${{ secrets.GITPOD_TEST_TOKEN_GITLAB }}"
353+
GITPOD_TEST_TOKEN_AZURE_DEVOPS: "${{ secrets.GITPOD_TEST_TOKEN_AZURE_DEVOPS }}"
334354
run: |
335-
./scripts/trivy/trivy-scan-images.sh ${{ needs.configuration.outputs.version }} CRITICAL
336-
exit $?
355+
[[ "$PR_NO_CACHE" = "true" ]] && CACHE="none" || CACHE="remote"
356+
[[ "$PR_NO_TEST" = "true" ]] && TEST="--dont-test" || TEST=""
357+
[[ "${PUBLISH_TO_NPM}" = 'true' ]] && NPM_PUBLISH_TRIGGER=$(date +%s%3N) || NPM_PUBLISH_TRIGGER="false"
358+
359+
# tmp: Update leeway from branch to make testing easier
360+
LEEWAY_BRANCH=clu/sbom-cve-2
361+
LEEWAY_REPO_DIR=$(mktemp -d -t leeway-repo-XXXXXXXXXX) && git clone https://github.com/gitpod-io/leeway "$LEEWAY_REPO_DIR" && cd "$LEEWAY_REPO_DIR" && git switch ${LEEWAY_BRANCH} && git pull && go build -ldflags="-X github.com/gitpod-io/leeway/pkg/leeway.Version=0.10.2.sbom" -o leeway && sudo install -m 755 leeway /usr/bin/ && cd - && rm -rf "$LEEWAY_REPO_DIR"
337362
363+
RESULT=0
364+
365+
sboms_dir=$(mktemp -d)
366+
CI= leeway -v sbom export --with-dependencies --output-dir "$sboms_dir" \
367+
-Dversion=$VERSION \
368+
--docker-build-options network=host \
369+
--max-concurrent-tasks 1 \
370+
-DlocalAppVersion=$VERSION \
371+
-DpublishToNPM="${PUBLISH_TO_NPM}" \
372+
-DnpmPublishTrigger="${NPM_PUBLISH_TRIGGER}" \
373+
-DpublishToJBMarketplace="${PUBLISH_TO_JBPM}" \
374+
-DimageRepoBase=$IMAGE_REPO_BASE
375+
376+
scans_dir=$(mktemp -d)
377+
CI= leeway -v sbom scan --with-dependencies --output-dir "$scans_dir" \
378+
-Dversion=$VERSION \
379+
--docker-build-options network=host \
380+
--max-concurrent-tasks 1 \
381+
-DlocalAppVersion=$VERSION \
382+
-DpublishToNPM="${PUBLISH_TO_NPM}" \
383+
-DnpmPublishTrigger="${NPM_PUBLISH_TRIGGER}" \
384+
-DpublishToJBMarketplace="${PUBLISH_TO_JBPM}" \
385+
-DimageRepoBase=$IMAGE_REPO_BASE
386+
387+
{
388+
echo "leeway_sboms_dir=$sboms_dir"
389+
echo "leeway_vulnerability_reports_dir=$scans_dir"
390+
} >> $GITHUB_OUTPUT
391+
392+
cat "$scans_dir/vulnerability-summary.md" >> $GITHUB_STEP_SUMMARY
393+
- name: Upload SBOMs
394+
uses: actions/upload-artifact@v4
395+
if: success()
396+
with:
397+
name: sboms
398+
path: ${{ steps.scan.outputs.leeway_sboms_dir }}
399+
- name: Upload vulnerability reports
400+
uses: actions/upload-artifact@v4
401+
if: success()
402+
with:
403+
name: vulnerability-reports
404+
path: ${{ steps.scan.outputs.leeway_vulnerability_reports_dir }}
338405
install-app:
339406
runs-on: ${{ needs.create-runner.outputs.label }}
340-
needs: [ configuration, build-gitpod, trivy-scan, create-runner ]
407+
needs: [ configuration, build-gitpod, vulnerability-scan, create-runner ]
341408
if: ${{ needs.configuration.outputs.is_main_branch == 'true' }}
342409
strategy:
343410
fail-fast: false
@@ -375,7 +442,7 @@ jobs:
375442
- configuration
376443
- build-previewctl
377444
- build-gitpod
378-
- trivy-scan
445+
- vulnerability-scan
379446
- infrastructure
380447
- create-runner
381448
runs-on: ${{ needs.create-runner.outputs.label }}

0 commit comments

Comments
 (0)