88 - qemu/**
99 - solo5/**
1010 - firecracker/**
11+ - cloud-hypervisor/**
1112 - virtiofsd/**
1213 push :
1314 branches :
1617 - qemu/**
1718 - solo5/**
1819 - firecracker/**
20+ - cloud-hypervisor/**
1921 - virtiofsd/**
2022
2123jobs :
2628 qemu_version : ${{ steps.versions.outputs.qemu_version }}
2729 solo5_version : ${{ steps.versions.outputs.solo5_version }}
2830 firecracker_version : ${{ steps.versions.outputs.firecracker_version }}
31+ cloud-hypervisor_version : ${{ steps.versions.outputs.cloud-hypervisor_version }}
2932 virtiofsd_version : ${{ steps.versions.outputs.virtiofsd_version }}
3033
3134 steps :
@@ -45,14 +48,17 @@ jobs:
4548 QEMU_VERSION="$(cat qemu/VERSION)"
4649 SOLO5_VERSION="$(cat solo5/VERSION)"
4750 FIRECRACKER_VERSION="$(cat firecracker/VERSION)"
51+ CLOUD_HYPERVISOR_VERSION="$(cat cloud-hypervisor/VERSION)"
4852 VIRTIOFSD_VERSION="$(cat virtiofsd/VERSION)"
4953 echo "qemu_version=$QEMU_VERSION" >> $GITHUB_OUTPUT
5054 echo "solo5_version=$SOLO5_VERSION" >> $GITHUB_OUTPUT
5155 echo "firecracker_version=$FIRECRACKER_VERSION" >> $GITHUB_OUTPUT
56+ echo "cloud-hypervisor_version=$CLOUD_HYPERVISOR_VERSION" >> $GITHUB_OUTPUT
5257 echo "virtiofsd_version=$VIRTIOFSD_VERSION" >> $GITHUB_OUTPUT
5358 echo "$QEMU_VERSION"
5459 echo "$SOLO5_VERSION"
5560 echo "$FIRECRACKER_VERSION"
61+ echo "$CLOUD_HYPERVISOR_VERSION"
5662 echo "$VIRTIOFSD_VERSION"
5763
5864 check-release-existence :
8995 id : release
9096 run : |
9197 SHORT_HASH=$(echo ${{ steps.name.outputs.hash }} | cut -c1-5)
92- echo "name=FC-${{ needs.get-versions.outputs.firecracker_version }}_S5-${{ needs.get-versions.outputs.solo5_version }}_VFS_-${{ needs.get-versions.outputs.virtiofsd_version }}_QM-${{ needs.get-versions.outputs.qemu_version }}-${SHORT_HASH}" >> $GITHUB_OUTPUT
98+ echo "name=FC-${{ needs.get-versions.outputs.firecracker_version }}_CLH-${{ needs.get-versions.outputs.cloud-hypervisor_version }} _S5-${{ needs.get-versions.outputs.solo5_version }}_VFS_-${{ needs.get-versions.outputs.virtiofsd_version }}_QM-${{ needs.get-versions.outputs.qemu_version }}-${SHORT_HASH}" >> $GITHUB_OUTPUT
9399 echo "qemu=${{ needs.get-versions.outputs.qemu_version }}-${SHORT_HASH}" >> $GITHUB_OUTPUT
94100
95101 - name : Check if release exists
@@ -257,10 +263,24 @@ jobs:
257263 mkdir /tmp/fc_arm64
258264 mv release-${{ needs.get-versions.outputs.firecracker_version }}-aarch64/firecracker-${{ needs.get-versions.outputs.firecracker_version }}-aarch64 /tmp/fc_arm64/firecracker
259265
266+ - name : Download Cloud-Hypervisor amd64 binary
267+ run : |
268+ mkdir /tmp/clh_amd64
269+ CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
270+ curl -L -o /tmp/clh_amd64/cloud-hypervisor ${CLH_RELEASE_URL}/download/${{ needs.get-versions.outputs.cloud-hypervisor_version }}/cloud-hypervisor-static
271+
272+ - name : Download Cloud-Hypervisor arm64 binary
273+ run : |
274+ mkdir /tmp/clh_arm64
275+ CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
276+ curl -L -o /tmp/clh_arm64/cloud-hypervisor ${CLH_RELEASE_URL}/download/${{ needs.get-versions.outputs.cloud-hypervisor_version }}/cloud-hypervisor-static-aarch64
277+
260278 - name : Package all artifacts
261279 run : |
262280 chmod +x /tmp/fc_amd64/firecracker
263281 mv /tmp/fc_amd64/firecracker /tmp/qemu_amd64/opt/urunc/bin/
282+ chmod +x /tmp/clh_amd64/cloud-hypervisor
283+ mv /tmp/clh_amd64/cloud-hypervisor /tmp/qemu_amd64/opt/urunc/bin/
264284 chmod +x /tmp/solo5_amd64/solo5-hvt
265285 mv /tmp/solo5_amd64/solo5-hvt /tmp/qemu_amd64/opt/urunc/bin/
266286 chmod +x /tmp/solo5_amd64/solo5-spt
@@ -271,6 +291,8 @@ jobs:
271291 tar -C /tmp/qemu_amd64/opt -czf release-amd64-${{ needs.check-release-existence.outputs.release }}.tar.gz .
272292 chmod +x /tmp/fc_arm64/firecracker
273293 mv /tmp/fc_arm64/firecracker /tmp/qemu_arm64/opt/urunc/bin/
294+ chmod +x /tmp/clh_arm64/cloud-hypervisor
295+ mv /tmp/clh_arm64/cloud-hypervisor /tmp/qemu_arm64/opt/urunc/bin/
274296 chmod +x /tmp/solo5_arm64/solo5-hvt
275297 mv /tmp/solo5_arm64/solo5-hvt /tmp/qemu_arm64/opt/urunc/bin/
276298 chmod +x /tmp/solo5_arm64/solo5-spt
@@ -280,9 +302,10 @@ jobs:
280302 chmod +x /tmp/qemu_arm64/opt/urunc/bin/qemu-system-aarch64
281303 tar -C /tmp/qemu_arm64/opt -czf release-arm64-${{ needs.check-release-existence.outputs.release }}.tar.gz .
282304 echo "This release contains statically-built artifacts for both amd64 and arm64 of the following monitors and tools:" > release_notes.txt
283- echo "- Qemu: ${{ needs.get-versions.outputs.firecracker_version }}" >> release_notes.txt
305+ echo "- Qemu: ${{ needs.get-versions.outputs.qemu_version }}" >> release_notes.txt
284306 echo "- Solo5(hvt and spt): ${{ needs.get-versions.outputs.solo5_version }}" >> release_notes.txt
285307 echo "- Firecracker: ${{ needs.get-versions.outputs.firecracker_version }}" >> release_notes.txt
308+ echo "- Cloud-Hypervisor: ${{ needs.get-versions.outputs.cloud-hypervisor_version }}" >> release_notes.txt
286309 echo "- Virtiofsd: ${{ needs.get-versions.outputs.virtiofsd_version }}" >> release_notes.txt
287310 echo "" >> release_notes.txt
288311 echo "The hash of the Qemu files is: ${{ needs.check-release-existence.outputs.qemu_hash }}" >> release_notes.txt
@@ -328,11 +351,14 @@ jobs:
328351 VIRTIOFSD_LINK="${RUNS_URL}/${{ needs.build-Virtiofsd-artifacts.outputs.artifact_run_id }}"
329352
330353 FC_RELEASE_URL="https://github.com/firecracker-microvm/firecracker/releases"
331- FC_LINK="${FC_RELEASE_URL}/download/${{ needs.get-versions.outputs.firecracker_version }}"
354+ FC_LINK="${FC_RELEASE_URL}/tag/${{ needs.get-versions.outputs.firecracker_version }}"
355+ CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
356+ CLH_LINK="${CLH_RELEASE_URL}/tag/${{ needs.get-versions.outputs.cloud-hypervisor_version }}"
332357 echo "qemu=${QEMU_LINK}" >> $GITHUB_OUTPUT
333358 echo "solo5=${SOLO5_LINK}" >> $GITHUB_OUTPUT
334359 echo "virtiofsd=${VIRTIOFSD_LINK}" >> $GITHUB_OUTPUT
335360 echo "firecracker=${FC_LINK}" >> $GITHUB_OUTPUT
361+ echo "cloud-hypervisor=${CLH_LINK}" >> $GITHUB_OUTPUT
336362 if ${{ needs.check-release-existence.outputs.exists == 'false' }}
337363 then
338364 echo "release=" >> $GITHUB_OUTPUT
@@ -347,6 +373,7 @@ jobs:
347373 SOLO5_TEXT : " Solo5 ${{ needs.build-Solo5-artifacts.outputs.artifact_suffix }}: ${{ steps.links.outputs.solo5 }}"
348374 VFS_TEXT : " Virtiofsd ${{ needs.build-Virtiofsd-artifacts.outputs.artifact_suffix }}: ${{ steps.links.outputs.virtiofsd }}"
349375 FC_TEXT : " Firecracker ${{ needs.get-versions.outputs.firecracker_version }}: ${{ steps.links.outputs.firecracker }}"
376+ CLH_TEXT : " Cloud-Hypervisor ${{ needs.get-versions.outputs.cloud-hypervisor_version }}: ${{ steps.links.outputs.cloud-hypervisor }}"
350377 with :
351378 script : |
352379 const body = `
@@ -355,6 +382,7 @@ jobs:
355382 - ${process.env.SOLO5_TEXT}
356383 - ${process.env.VFS_TEXT}
357384 - ${process.env.FC_TEXT}
385+ - ${process.env.CLH_TEXT}
358386 `;
359387 await github.rest.issues.createComment({
360388 issue_number: context.issue.number,
0 commit comments