From fbb53b39e5069e69950ae07e4fcf5ac66df9524d Mon Sep 17 00:00:00 2001 From: "K.B.Dharun Krishna" Date: Tue, 2 Jul 2024 21:26:34 +0530 Subject: [PATCH] feat: attest image, verify base image Signed-off-by: K.B.Dharun Krishna --- .github/workflows/vib-build.yml | 35 ++++++++++++++++++++++++++------- recipe.yml | 4 ++-- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/.github/workflows/vib-build.yml b/.github/workflows/vib-build.yml index 1254aea..22d6239 100644 --- a/.github/workflows/vib-build.yml +++ b/.github/workflows/vib-build.yml @@ -12,13 +12,25 @@ on: env: BUILDX_NO_DEFAULT_ATTESTATIONS: 1 -permissions: - contents: write # Allow actions to create release - packages: write # Allow pushing images to GHCR - jobs: + verify-image: + runs-on: ubuntu-latest + + steps: + - name: Verify Base Image Integrity + run: + gh attestation verify oci://ghcr.io/vanilla-os/desktop:main --owner Vanilla-OS + env: + GH_TOKEN: ${{ github.token }} + build: runs-on: ubuntu-latest + needs: verify-image + permissions: + contents: write # Allow actions to create release + packages: write # Allow pushing images to GHCR + attestations: write # To create and write attestations + id-token: write # Additional permissions for the persistence of the attestations steps: - uses: actions/checkout@v4 @@ -26,7 +38,7 @@ jobs: - uses: vanilla-os/vib-gh-action@v0.7.2 with: recipe: 'recipe.yml' - plugins: 'Vanilla-OS/vib-fsguard:v1.4' + plugins: 'Vanilla-OS/vib-fsguard:v1.5.1' - uses: actions/upload-artifact@v4 with: @@ -37,14 +49,14 @@ jobs: run: | REPO_OWNER_LOWERCASE="$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" echo "REPO_OWNER_LOWERCASE=$REPO_OWNER_LOWERCASE" >> "$GITHUB_ENV" - echo "IMAGE_NAME=ghcr.io/$REPO_OWNER_LOWERCASE/nvidia" >> "$GITHUB_ENV" + echo "IMAGE_URL=ghcr.io/$REPO_OWNER_LOWERCASE/nvidia" >> "$GITHUB_ENV" - name: Docker meta id: docker_meta uses: docker/metadata-action@v5 with: images: | - ${{ env. IMAGE_NAME }} + ${{ env. IMAGE_URL }} tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -76,3 +88,12 @@ jobs: cache-to: type=gha,mode=max platforms: linux/amd64 provenance: false + + - name: Attest pushed image + uses: actions/attest-build-provenance@v1 + id: attest + if: ${{ github.event_name != 'pull_request' }} + with: + subject-name: ${{ env.IMAGE_URL }} + subject-digest: ${{ steps.push.outputs.digest }} + push-to-registry: false diff --git a/recipe.yml b/recipe.yml index d2dee44..e6365cd 100644 --- a/recipe.yml +++ b/recipe.yml @@ -54,8 +54,8 @@ stages: url: https://github.com/Vanilla-OS/vanilla-tools/releases/download/continuous/vanilla-tools.tar.gz commands: - mkdir -p /usr/bin - - cp /sources/vanilla-tools/nrun /usr/bin/nrun - - cp /sources/vanilla-tools/prime-switch /usr/bin/prime-switch + - cp /sources/vanilla-tools/vanilla-tools/nrun /usr/bin/nrun + - cp /sources/vanilla-tools/vanilla-tools/prime-switch /usr/bin/prime-switch - chmod +x /usr/bin/nrun - chmod +x /usr/bin/prime-switch