name: AWS SNP Launch Measurement on: schedule: # Run daily at 22:00. - cron: '0 22 * * *' workflow_dispatch: jobs: run: runs-on: ubuntu-22.04 steps: - name: Checkout repository uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: ref: ${{ github.head_ref }} path: constellation - name: Install necessary tools run: | sudo apt-get update sudo apt-get install -y python3 python3-pip sudo python3 -m pip install --user --require-hashes -r constellation/.github/workflows/aws-snp-launchmeasurements-requirements.txt - name: Install Nix uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v23 - name: Download Firmware release id: download-firmware uses: robinraju/release-downloader@efa4cd07bd0195e6cc65e9e30c251b49ce4d3e51 # tag=v1.8 with: repository: aws/uefi latest: true zipBall: true - name: Build UEFI firmware id: build-uefi shell: bash run: | # Unzip into a extra dir so that we can find "default.nix" and make sure we end up in the right directory. mkdir aws-uefi zipLocation=$(find . -name "uefi-*.zip") unzip -d aws-uefi "$zipLocation" buildfilePath="$(find aws-uefi -name 'default.nix')" pushd "$(dirname "$buildfilePath")" || exit 1 nix-build --pure ovmfPath=$(realpath result/ovmf_img.fd) echo "ovmfPath=${ovmfPath}" | tee -a "$GITHUB_OUTPUT" popd || exit 1 - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: repository: virtee/sev-snp-measure-go.git ref: e42b6f8991ed5a671d5d1e02a6b61f6373f9f8d8 path: sev-snp-measure-go - name: Generate API objects shell: bash run: | pushd sev-snp-measure-go/sevsnpmeasure || exit 1 go build . ./sevsnpmeasure parse-metadata ${{ steps.build-uefi.outputs.ovmfPath }} -o metadata.json jq < metadata.json popd || exit 1