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

feat: produce sigstore Bundles for generic generator and go builder workflows #3777

Merged
merged 105 commits into from
Oct 24, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
42311b5
fix: maven e2e: remove verify job (#3748)
ramonpetgrave64 Jul 26, 2024
ec2ef9d
debug: print a message
ramonpetgrave64 Jul 31, 2024
26f0792
debug: print token payload
ramonpetgrave64 Jul 31, 2024
8aac1ea
debug: make sigstore bundle
ramonpetgrave64 Aug 1, 2024
0ec6b32
debug: add checks for err
ramonpetgrave64 Aug 1, 2024
5c4c4ec
full bundle print
ramonpetgrave64 Aug 1, 2024
576a078
debug: timout and retires
ramonpetgrave64 Aug 1, 2024
d3be460
debug: no trusted root, no verifying the bundle upon creation
ramonpetgrave64 Aug 1, 2024
a74d494
debug: marshall the bunlde
ramonpetgrave64 Aug 1, 2024
2cce51b
debug: attempt to produce real artifact
ramonpetgrave64 Aug 1, 2024
0cbf195
debug: attempt to verify with slsa-verifier
ramonpetgrave64 Aug 1, 2024
3b56d15
debug: SLSA_VERIFIER_TESTING
ramonpetgrave64 Aug 1, 2024
a81286f
debug: unpinned ul/dl artifact
ramonpetgrave64 Aug 1, 2024
5011d90
debug: ul/dl artifact @v4
ramonpetgrave64 Aug 1, 2024
0a0f065
debug: no additonal TSAs
ramonpetgrave64 Aug 1, 2024
aff495e
debug: back to setting trusted root
ramonpetgrave64 Aug 1, 2024
d5b1fc3
debug: compile
ramonpetgrave64 Aug 1, 2024
dc2df0f
debug: derference attestation
ramonpetgrave64 Aug 1, 2024
8f3bbff
debug: use plain data for bundle content
ramonpetgrave64 Aug 1, 2024
6ded4e7
debug: back to dsse data, nil trusted root so we don't try to verify,…
ramonpetgrave64 Aug 1, 2024
6b0cb35
sign the envelope directly
ramonpetgrave64 Aug 1, 2024
8188b61
back to trying to verify the bundle
ramonpetgrave64 Aug 1, 2024
f89fbd8
init: generic byob
ramonpetgrave64 Aug 2, 2024
5209a01
debug: generic as byob
ramonpetgrave64 Aug 2, 2024
97fc5b6
idtoken write
ramonpetgrave64 Aug 2, 2024
6d7727f
all perms
ramonpetgrave64 Aug 2, 2024
020af23
rel dir
ramonpetgrave64 Aug 2, 2024
bf28520
lahR
ramonpetgrave64 Aug 2, 2024
01f3035
add go.mod
ramonpetgrave64 Aug 7, 2024
745df85
subshell cd
ramonpetgrave64 Aug 7, 2024
0c1dc7a
go1.22
ramonpetgrave64 Aug 7, 2024
c4bb969
dir
ramonpetgrave64 Aug 7, 2024
86d4ecb
add veridy
ramonpetgrave64 Aug 7, 2024
cec43c8
upload the artifacts
ramonpetgrave64 Aug 7, 2024
c8aec50
set attestation-name variable
ramonpetgrave64 Aug 7, 2024
766c35d
named output
ramonpetgrave64 Aug 7, 2024
7281e3f
use env
ramonpetgrave64 Aug 7, 2024
17f9ec1
ls -lahr
ramonpetgrave64 Aug 7, 2024
7ab495d
prov--name, not prov-download-name
ramonpetgrave64 Aug 7, 2024
628ab62
secure download atts
ramonpetgrave64 Aug 7, 2024
e3936c0
actual prov name
ramonpetgrave64 Aug 7, 2024
98632b1
rename prov
ramonpetgrave64 Aug 7, 2024
9e23996
rename all to .build.slsa
ramonpetgrave64 Aug 7, 2024
d7d920b
full prov path
ramonpetgrave64 Aug 7, 2024
3465a62
--source branch
ramonpetgrave64 Aug 7, 2024
1e0ba53
alternate slsa-verifier build
ramonpetgrave64 Aug 8, 2024
914d2f7
by commit sha
ramonpetgrave64 Aug 8, 2024
c0edc87
install slsa-verifier directly with the branch
ramonpetgrave64 Aug 8, 2024
ed1e0ec
setup-go
ramonpetgrave64 Aug 8, 2024
3935105
alt generator_generic
ramonpetgrave64 Aug 8, 2024
53e0470
add it
ramonpetgrave64 Aug 8, 2024
08eed9f
typo
ramonpetgrave64 Aug 8, 2024
10a794d
fix input
ramonpetgrave64 Aug 8, 2024
29a669b
contents: writer
ramonpetgrave64 Aug 8, 2024
258c8e0
action ref
ramonpetgrave64 Aug 8, 2024
de08ee1
fix path
ramonpetgrave64 Aug 8, 2024
4036af2
pwd
ramonpetgrave64 Aug 8, 2024
b997c22
cd
ramonpetgrave64 Aug 8, 2024
f5bd695
again
ramonpetgrave64 Aug 8, 2024
32a8152
checkout
ramonpetgrave64 Aug 8, 2024
1f7255c
original, no trusted root, custom slsa-verifier
ramonpetgrave64 Aug 9, 2024
1c2f8e9
run directly not as action
ramonpetgrave64 Aug 9, 2024
bd82eb3
explitly use v1 provenance
ramonpetgrave64 Aug 9, 2024
d5b3b90
build3
ramonpetgrave64 Aug 9, 2024
dcb4c54
ls
ramonpetgrave64 Aug 9, 2024
8223b26
add original wokrflow
ramonpetgrave64 Aug 12, 2024
419a686
back to nil provider
ramonpetgrave64 Aug 12, 2024
ea4500a
alt verifier branch
ramonpetgrave64 Aug 12, 2024
a1fdee8
add BundleSigner()
ramonpetgrave64 Aug 12, 2024
8562c8c
cleanup
ramonpetgrave64 Aug 12, 2024
0a43423
debug cleanup
ramonpetgrave64 Aug 12, 2024
b02f9e6
cleanup
ramonpetgrave64 Aug 12, 2024
e6e15d6
changelog
ramonpetgrave64 Aug 12, 2024
1b2cd9e
lint
ramonpetgrave64 Aug 12, 2024
58675b5
lint
ramonpetgrave64 Aug 12, 2024
7f2186f
add bundles for go packages
ramonpetgrave64 Aug 12, 2024
ea05345
test workflows
ramonpetgrave64 Aug 12, 2024
4f20057
perms
ramonpetgrave64 Aug 12, 2024
1526416
compile builder
ramonpetgrave64 Aug 12, 2024
22d3cb1
add config file
ramonpetgrave64 Aug 12, 2024
b8cc29f
undo typo
ramonpetgrave64 Aug 12, 2024
0ef3049
ls
ramonpetgrave64 Aug 12, 2024
ec5b2ae
verify v3
ramonpetgrave64 Aug 12, 2024
6d66d8c
correct source branch
ramonpetgrave64 Aug 12, 2024
777f1fc
lint
ramonpetgrave64 Aug 12, 2024
b38f9d6
modularize the fulcio and rekor URLs
ramonpetgrave64 Aug 12, 2024
fe81c3a
lint
ramonpetgrave64 Aug 14, 2024
7127022
print the rekor log index
ramonpetgrave64 Aug 14, 2024
e9b04be
chore(deps): update github-actions (#3753)
renovate-bot Aug 2, 2024
c4cd932
chore(deps): bump github.com/docker/docker from 24.0.9+incompatible t…
dependabot[bot] Aug 2, 2024
f636fb3
chore(config): migrate renovate config (#3774)
renovate-bot Aug 14, 2024
76ca145
lint
ramonpetgrave64 Aug 14, 2024
e04b6f8
fix help text
ramonpetgrave64 Aug 15, 2024
769ff49
remove debug fiel
ramonpetgrave64 Aug 15, 2024
2f0a04d
Revert "remove debug fiel"
ramonpetgrave64 Aug 16, 2024
0f3b0b9
remove unused rekor addr, use trusted root for partial inline
ramonpetgrave64 Aug 16, 2024
ee41a79
remove debug workflow
ramonpetgrave64 Aug 16, 2024
5f8b841
Update pre-submit.lint.yml
ramonpetgrave64 Sep 3, 2024
447cfe0
upgrade golancilint
ramonpetgrave64 Sep 3, 2024
c399674
lint
ramonpetgrave64 Sep 3, 2024
78b455f
lowercase
ramonpetgrave64 Oct 8, 2024
b23bcf2
correct print string
ramonpetgrave64 Oct 8, 2024
60e98e9
Merge branch 'main' into ramonpetgrave64-internal-builder-sigstore-bu…
ramonpetgrave64 Oct 8, 2024
739ec4a
Merge branch 'main' into ramonpetgrave64-internal-builder-sigstore-bu…
ramonpetgrave64 Oct 24, 2024
6bf118c
1.23.1 in generator_generic
ramonpetgrave64 Oct 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test workflows
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <32398091+ramonpetgrave64@users.noreply.github.com>
  • Loading branch information
ramonpetgrave64 committed Oct 8, 2024
commit ea05345ccd3df2efe02aa554c70053705bd6d3f6
20 changes: 9 additions & 11 deletions .github/workflows/builder_go_slsa3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -319,20 +319,18 @@ jobs:
go-provenance-name: ${{ steps.sign-prov.outputs.signed-provenance-name }}
go-provenance-sha256: ${{ steps.sign-prov.outputs.signed-provenance-sha256 }}
steps:
- name: Checkout builder repository
uses: slsa-framework/slsa-github-generator/.github/actions/secure-builder-checkout@main
- name: Generate builder
id: generate-builder
continue-on-error: true
uses: slsa-framework/slsa-github-generator/.github/actions/generate-builder@main
with:
repository: "${{ needs.detect-env.outputs.repository }}"
ref: "${{ needs.detect-env.outputs.ref }}"
path: __BUILDER_CHECKOUT_DIR__

- name: Download builder
uses: ./__BUILDER_CHECKOUT_DIR__/.github/actions/secure-download-artifact
with:
name: "${{ env.BUILDER_BINARY }}-${{ needs.rng.outputs.value }}"
path: "${{ env.BUILDER_BINARY }}"
sha256: "${{ needs.builder.outputs.go-builder-sha256 }}"
set-executable: true
go-version: "1.22"
binary: "${{ env.BUILDER_BINARY }}"
compile-builder: "true"
directory: "${{ env.BUILDER_DIR }}"
allow-private-repository: ${{ inputs.private-repository }}

- name: Create and sign provenance
id: sign-prov
Expand Down
52 changes: 43 additions & 9 deletions .github/workflows/debug.generic-generator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
build:
generic-build:
outputs:
hashes: ${{ steps.hash.outputs.hashes }}
runs-on: ubuntu-latest
Expand Down Expand Up @@ -61,21 +61,21 @@ jobs:
if-no-files-found: error
retention-days: 5

provenance:
needs: build
generic-provenance:
needs: generic-build
permissions:
id-token: write # For signing.
contents: write # For asset uploads.
actions: read # For reading workflow info.
uses: ./.github/workflows/generator_generic_slsa3.yml
with:
base64-subjects: "${{ needs.build.outputs.hashes }}"
base64-subjects: "${{ needs.generic-build.outputs.hashes }}"
compile-generator: true
provenance-name: build.intoto.jsonl
provenance-name: generic-build.intoto.jsonl
upload-assets: true

verify:
needs: provenance
generic-verify:
needs: generic-provenance
runs-on: ubuntu-latest
steps:
- name: Download artifact1
Expand All @@ -89,7 +89,7 @@ jobs:
- name: Download provenance
uses: actions/download-artifact@v4
with:
name: build.intoto.jsonl
name: "${{ needs.generic-provenance.outputs.provenance-name }}"
- uses: actions/setup-go@v5
with:
go-version: 1.22
Expand All @@ -99,7 +99,41 @@ jobs:
run: |
SLSA_VERIFIER_TESTING=1 slsa-verifier verify-artifact \
artifact1 artifact2 \
--provenance-path build.intoto.jsonl \
--provenance-path generic-build.intoto.jsonl \
--source-uri github.com/slsa-framework/slsa-github-generator \
--source-branch ramonpetgrave64-internal-builder-sigstore-bundle \
--print-provenance

go-build:
uses: ./.github/workflows/builder_go_slsa3.yml
with:
go-version: 1.22

go-verify:
needs: generic-provenance
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: "${{ needs.go-build.outputs.go-binary-name }}"
- name: Download provenance
uses: actions/download-artifact@v4
with:
name: "${{ needs.go-build.outputs.go-provenance-name }}"
- uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Setup slsa-verifier
run: go install github.com/slsa-framework/slsa-verifier/v2/cli/slsa-verifier@verify-sigstore-go-Bundlev2
- name: Verify
env:
ARTIFACT: "${{ needs.go-build.outputs.go-provenance-name }}"
PROVENANCE: "${{ needs.go-build.outputs.go-provenance-name }}"
run: |
SLSA_VERIFIER_TESTING=1 slsa-verifier verify-artifact \
"$ARTIFACT" \
--provenance-path "$PROVENANCE" \
--source-uri github.com/slsa-framework/slsa-github-generator \
--source-branch ramonpetgrave64-internal-builder-sigstore-bundle \
--print-provenance
4 changes: 2 additions & 2 deletions .github/workflows/generator_generic_slsa3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ on:
value: ${{ jobs.upload-assets.outputs.release-id }}
provenance-name:
description: "The artifact name of the signed provenance. (A file with the intoto.jsonl extension)."
value: ${{ jobs.generator.outputs.provenance-name }}
value: provenance-name
# Note: we use this output because there is no buildt-in `outcome` and `result` is always `success`
# if `continue-on-error` is set to `true`.
outcome:
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:
with:
repository: "${{ needs.detect-env.outputs.repository }}"
ref: "${{ needs.detect-env.outputs.ref }}"
go-version: "1.21"
go-version: "1.22"
binary: "${{ env.BUILDER_BINARY }}"
compile-builder: "${{ inputs.compile-generator }}"
directory: "${{ env.BUILDER_DIR }}"
Expand Down