Skip to content

build-guestagent

build-guestagent #1

name: build-guestagent
on:
workflow_call:
workflow_dispatch:
jobs:
build-guestagent:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Configure branding
run: .\scripts\branding-ci.ps1 -OutFile .\branding.ps1
env:
VENDOR_NAME: ${{vars.VENDOR_NAME}}
PRODUCT_NAME: ${{vars.PRODUCT_NAME}}
VENDOR_PREFIX: ${{vars.VENDOR_PREFIX}}
COPYRIGHT: ${{vars.COPYRIGHT}}
PackageVersions_Product: ${{vars.PackageVersions_Product}}.${{github.run_number}}
PackageVersions_xenbus: ${{vars.PackageVersions_xenbus}}.${{github.run_number}}
PackageVersions_xencons: ${{vars.PackageVersions_xencons}}.${{github.run_number}}
PackageVersions_xenhid: ${{vars.PackageVersions_xenhid}}.${{github.run_number}}
PackageVersions_xeniface: ${{vars.PackageVersions_xeniface}}.${{github.run_number}}
PackageVersions_xennet: ${{vars.PackageVersions_xennet}}.${{github.run_number}}
PackageVersions_xenvbd: ${{vars.PackageVersions_xenvbd}}.${{github.run_number}}
PackageVersions_xenvif: ${{vars.PackageVersions_xenvif}}.${{github.run_number}}
PackageVersions_xenvkbd: ${{vars.PackageVersions_xenvkbd}}.${{github.run_number}}
PackageVersions_XenClean: ${{vars.PackageVersions_XenClean}}.${{github.run_number}}
PackageVersions_XenBootFix: ${{vars.PackageVersions_XenBootFix}}.${{github.run_number}}
PackageVersions_XenGuestAgent: ${{vars.PackageVersions_XenGuestAgent}}.${{github.run_number}}
MSI_UPGRADE_CODE_X86: ${{vars.MSI_UPGRADE_CODE_X86}}
MSI_UPGRADE_CODE_X64: ${{vars.MSI_UPGRADE_CODE_X64}}
- name: Build guest agent
run: .\build-guestagent.ps1 -Configuration release
- name: Catalog guest agent
run: |
Import-Module .\scripts\artifact.psm1 -Force
Get-ArtifactCatalog -Path .\xen-guest-agent\target\release -Include *.exe |
Export-Csv -NoTypeInformation guestagent-catalog.csv
- name: Upload artifact
id: upload
uses: actions/upload-artifact@v4
with:
name: guestagent
path: |
xen-guest-agent/target/release/*.exe
xen-guest-agent/target/release/*.pdb
- name: Upload guest agent catalog
uses: actions/upload-artifact@v4
with:
path: guestagent-catalog.csv
name: guestagent-catalog
outputs:
subject-name: guestagent
subject-digest: sha256:${{steps.upload.outputs.artifact-digest}}
catalog-name: guestagent-catalog
attest-guestagent:
needs: [build-guestagent]
uses: ./.github/workflows/attest.yml
permissions:
id-token: write
contents: read
attestations: write
with:
subject-name: ${{needs.build-guestagent.outputs.subject-name}}
subject-digest: ${{needs.build-guestagent.outputs.subject-digest}}
catalog-name: ${{needs.build-guestagent.outputs.catalog-name}}
selfsign-guestagent:
needs: [build-guestagent]
runs-on: windows-latest
steps:
# for the sign scripts
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
path: xen-guest-agent/target/release/
name: guestagent
- name: Install certificate
run: .\scripts\signer-ci.ps1 -OutFile .\branding.ps1
env:
SIGNER_PFX_BASE64: ${{secrets.SIGNER_PFX_BASE64}}
- name: Sign artifact
run: |
. .\branding.ps1
. .\scripts\sign.ps1
Set-SignerFileSignature (Get-ChildItem .\xen-guest-agent\target\release -File -Recurse -Include *.dll, *.exe)
- name: Clean up certificates
if: always()
run: Remove-Item Cert:\CurrentUser\My\* -ErrorAction SilentlyContinue
- name: Upload artifact
id: upload
uses: actions/upload-artifact@v4
with:
path: xen-guest-agent/target/release/
name: guestagent-signed