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

Add qemu binary release workflow: #852

Merged
merged 3 commits into from
Feb 21, 2024

Conversation

Javagedes
Copy link
Contributor

Description

Add a new workflow that will build and prepare qemu binaries for both Windows and Linux. This workflow has three triggers:

  1. A pull request to the main branch, which will only trigger when either the workflow itself, or the qemu version file is updated. This workflow will upload the binaries as an artifact to the workflow.

  2. A release, which will upload the binaries as an artifact to the associated release

  3. A manual trigger, which allows for testing the workflow on a custom branch. This will upload the binaries as an artifact to the workflow.

  • Impacts functionality?
    • Functionality - Does the change ultimately impact how firmware functions?
    • Examples: Add a new library, publish a new PPI, update an algorithm, ...
  • Impacts security?
    • Security - Does the change have a direct security impact on an application,
      flow, or firmware?
    • Examples: Crypto algorithm change, buffer overflow fix, parameter
      validation improvement, ...
  • Breaking change?
    • Breaking change - Will anyone consuming this change experience a break
      in build or boot behavior?
    • Examples: Add a new library class, move a module to a different repo, call
      a function in a new library class in a pre-existing module, ...
  • Includes tests?
    • Tests - Does the change include any explicit test code?
    • Examples: Unit tests, integration tests, robot tests, ...
  • Includes documentation?
    • Documentation - Does the change contain explicit documentation additions
      outside direct code modifications (and comments)?
    • Examples: Update readme file, add feature readme file, link to documentation
      on an a separate Web page, ...

How This Was Tested

A release was performed using this github action on a personal branch (v0.1.9), and was used as an external dependency on a mu_tiano_platforms Draft PR, which is passing, and will be merged once this PR has been merged and a release has been executed.

Integration Instructions

N/A

@github-actions github-actions bot added the impact:non-functional Does not have a functional impact label Feb 8, 2024
@Javagedes Javagedes self-assigned this Feb 8, 2024
@Javagedes
Copy link
Contributor Author

@kuqin12 , @cfernald, Do you have some additional use cases that I / You can test? Probably related to loading an OS - but anything important?

@Javagedes Javagedes force-pushed the add-qemu-release-workflow branch 2 times, most recently from de83fc4 to d7d028d Compare February 8, 2024 17:37
@makubacki
Copy link
Member

@kuqin12 , @cfernald, Do you have some additional use cases that I / You can test? Probably related to loading an OS - but anything important?

If you have time to test the TpmReplay feature, instructions are here - https://github.com/microsoft/mu_tiano_platforms/blob/main/Platforms/Docs/Q35/Features/feature_tpm_replay.md. This is a little unique because it uses a TPM emulator. The TPM emulator only works on Linux at the moment. If there is not time to test it, it is used rarely enough, I can take a note to check it later.

I recommend at least booting Windows if you haven't done that.

@kuqin12
Copy link
Contributor

kuqin12 commented Feb 8, 2024

@kuqin12 , @cfernald, Do you have some additional use cases that I / You can test? Probably related to loading an OS - but anything important?

If you have time to test the TpmReplay feature, instructions are here - https://github.com/microsoft/mu_tiano_platforms/blob/main/Platforms/Docs/Q35/Features/feature_tpm_replay.md. This is a little unique because it uses a TPM emulator. The TPM emulator only works on Linux at the moment. If there is not time to test it, it is used rarely enough, I can take a note to check it later.

I recommend at least booting Windows if you haven't done that.

Agreed. We normally would validate with a Windows boot with the QEMU UEFI.

@Javagedes
Copy link
Contributor Author

@kuqin12 , @cfernald, Do you have some additional use cases that I / You can test? Probably related to loading an OS - but anything important?

If you have time to test the TpmReplay feature, instructions are here - https://github.com/microsoft/mu_tiano_platforms/blob/main/Platforms/Docs/Q35/Features/feature_tpm_replay.md. This is a little unique because it uses a TPM emulator. The TPM emulator only works on Linux at the moment. If there is not time to test it, it is used rarely enough, I can take a note to check it later.
I recommend at least booting Windows if you haven't done that.

Agreed. We normally would validate with a Windows boot with the QEMU UEFI.

Thanks! I will test both.

Add a new workflow that will build and prepare qemu binaries for both
Windows and Linux. This workflow has three triggers:

1. A pull request to the main branch, which will only trigger when
either the workflow itself, or the qemu version file is updated. This
workflow will upload the binaries as an artifact to the workflow.

2. A release, which will upload the binaries as an artifact to the
associated release

3. A manual trigger, which allows for testing the workflow on a custom
branch. This will upload the binaries as an artifact to the workflow.
@Javagedes Javagedes force-pushed the add-qemu-release-workflow branch 3 times, most recently from 368d5af to c54db95 Compare February 20, 2024 16:33
@Javagedes Javagedes force-pushed the add-qemu-release-workflow branch 2 times, most recently from 7f58a15 to 1429b98 Compare February 20, 2024 17:10
@Javagedes
Copy link
Contributor Author

Verified Qemu can boot to Windows for both Windows and Linux qemu binaries. Still need to test the Tpm Replay functionality.

@Javagedes
Copy link
Contributor Author

Verified Tpm Replay works.

@Javagedes Javagedes merged commit 8cfef90 into microsoft:main Feb 21, 2024
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact:non-functional Does not have a functional impact
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants