Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ensure sbom dir is empty #106

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

jduimovich
Copy link
Member

The init.sh file is not run as part of the gitops pipeline so the SBOM dir was not being reset.
This can result in multiple sboms being uploaded if you are using a long running Jenkins.

@jduimovich jduimovich requested a review from chmeliik December 10, 2024 22:10
@@ -295,7 +295,8 @@ find_blob_url() {
end' < "$attestation_file"
}

echo "Making sure $SBOMS_DIR directory exists"
echo "Making sure $SBOMS_DIR directory exists and is empty prior to downloading"
rm -rf "$SBOMS_DIR"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks scary for running the script locally. A dev can have the SBOMS_DIR set to something that they wouldn't want rm -rfed

The init.sh file is not run as part of the gitops pipeline so the SBOM dir was not being reset.

Should we just run the init.sh file for the gitops pipeline?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, if its set wrong (currently env.sh sets to export SBOMS_DIR=results/sboms) and for gitlab to work, its needed to be in results because the results directory gets copied between job steps

When run locally, the directory will be in tmp/reponame/results but if a user sets to ~/save-forever-files then yeah :(

Re: add back the init... Yes. the init script already does an rm -rf results and then checks for all those extra ENV vars for the build pipeline which are extra for the gitops one.
Given we know the env vars for in the pipelines via data.yaml we generate the list of mandatory vars similar to how we check in github actions (which currently checks twice) we could probably generate an ENV var like "REQUIRE_ENVS") and then init checks the ones in that variable.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's okay, though I guess we could do a rm -rf $SBOMS_DIR/*.json or something like that to make it safer. The -o nounset provides some safety here also.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants