Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 31 additions & 3 deletions .github/workflows/provide-artifacts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- qemu/**
- solo5/**
- firecracker/**
- cloud-hypervisor/**
- virtiofsd/**
push:
branches:
Expand All @@ -16,6 +17,7 @@ on:
- qemu/**
- solo5/**
- firecracker/**
- cloud-hypervisor/**
- virtiofsd/**

jobs:
Expand All @@ -26,6 +28,7 @@ jobs:
qemu_version: ${{ steps.versions.outputs.qemu_version }}
solo5_version: ${{ steps.versions.outputs.solo5_version }}
firecracker_version: ${{ steps.versions.outputs.firecracker_version }}
cloud-hypervisor_version: ${{ steps.versions.outputs.cloud-hypervisor_version }}
virtiofsd_version: ${{ steps.versions.outputs.virtiofsd_version }}

steps:
Expand All @@ -45,14 +48,17 @@ jobs:
QEMU_VERSION="$(cat qemu/VERSION)"
SOLO5_VERSION="$(cat solo5/VERSION)"
FIRECRACKER_VERSION="$(cat firecracker/VERSION)"
CLOUD_HYPERVISOR_VERSION="$(cat cloud-hypervisor/VERSION)"
VIRTIOFSD_VERSION="$(cat virtiofsd/VERSION)"
echo "qemu_version=$QEMU_VERSION" >> $GITHUB_OUTPUT
echo "solo5_version=$SOLO5_VERSION" >> $GITHUB_OUTPUT
echo "firecracker_version=$FIRECRACKER_VERSION" >> $GITHUB_OUTPUT
echo "cloud-hypervisor_version=$CLOUD_HYPERVISOR_VERSION" >> $GITHUB_OUTPUT
echo "virtiofsd_version=$VIRTIOFSD_VERSION" >> $GITHUB_OUTPUT
echo "$QEMU_VERSION"
echo "$SOLO5_VERSION"
echo "$FIRECRACKER_VERSION"
echo "$CLOUD_HYPERVISOR_VERSION"
echo "$VIRTIOFSD_VERSION"

check-release-existence:
Expand Down Expand Up @@ -89,7 +95,7 @@ jobs:
id: release
run: |
SHORT_HASH=$(echo ${{ steps.name.outputs.hash }} | cut -c1-5)
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
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
echo "qemu=${{ needs.get-versions.outputs.qemu_version }}-${SHORT_HASH}" >> $GITHUB_OUTPUT

- name: Check if release exists
Expand Down Expand Up @@ -257,10 +263,24 @@ jobs:
mkdir /tmp/fc_arm64
mv release-${{ needs.get-versions.outputs.firecracker_version }}-aarch64/firecracker-${{ needs.get-versions.outputs.firecracker_version }}-aarch64 /tmp/fc_arm64/firecracker

- name: Download Cloud-Hypervisor amd64 binary
run: |
mkdir /tmp/clh_amd64
CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
curl -L -o /tmp/clh_amd64/cloud-hypervisor ${CLH_RELEASE_URL}/download/${{ needs.get-versions.outputs.cloud-hypervisor_version }}/cloud-hypervisor-static

- name: Download Cloud-Hypervisor arm64 binary
run: |
mkdir /tmp/clh_arm64
CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
curl -L -o /tmp/clh_arm64/cloud-hypervisor ${CLH_RELEASE_URL}/download/${{ needs.get-versions.outputs.cloud-hypervisor_version }}/cloud-hypervisor-static-aarch64

- name: Package all artifacts
run: |
chmod +x /tmp/fc_amd64/firecracker
mv /tmp/fc_amd64/firecracker /tmp/qemu_amd64/opt/urunc/bin/
chmod +x /tmp/clh_amd64/cloud-hypervisor
mv /tmp/clh_amd64/cloud-hypervisor /tmp/qemu_amd64/opt/urunc/bin/
chmod +x /tmp/solo5_amd64/solo5-hvt
mv /tmp/solo5_amd64/solo5-hvt /tmp/qemu_amd64/opt/urunc/bin/
chmod +x /tmp/solo5_amd64/solo5-spt
Expand All @@ -271,6 +291,8 @@ jobs:
tar -C /tmp/qemu_amd64/opt -czf release-amd64-${{ needs.check-release-existence.outputs.release }}.tar.gz .
chmod +x /tmp/fc_arm64/firecracker
mv /tmp/fc_arm64/firecracker /tmp/qemu_arm64/opt/urunc/bin/
chmod +x /tmp/clh_arm64/cloud-hypervisor
mv /tmp/clh_arm64/cloud-hypervisor /tmp/qemu_arm64/opt/urunc/bin/
chmod +x /tmp/solo5_arm64/solo5-hvt
mv /tmp/solo5_arm64/solo5-hvt /tmp/qemu_arm64/opt/urunc/bin/
chmod +x /tmp/solo5_arm64/solo5-spt
Expand All @@ -280,9 +302,10 @@ jobs:
chmod +x /tmp/qemu_arm64/opt/urunc/bin/qemu-system-aarch64
tar -C /tmp/qemu_arm64/opt -czf release-arm64-${{ needs.check-release-existence.outputs.release }}.tar.gz .
echo "This release contains statically-built artifacts for both amd64 and arm64 of the following monitors and tools:" > release_notes.txt
echo "- Qemu: ${{ needs.get-versions.outputs.firecracker_version }}" >> release_notes.txt
echo "- Qemu: ${{ needs.get-versions.outputs.qemu_version }}" >> release_notes.txt
echo "- Solo5(hvt and spt): ${{ needs.get-versions.outputs.solo5_version }}" >> release_notes.txt
echo "- Firecracker: ${{ needs.get-versions.outputs.firecracker_version }}" >> release_notes.txt
echo "- Cloud-Hypervisor: ${{ needs.get-versions.outputs.cloud-hypervisor_version }}" >> release_notes.txt
echo "- Virtiofsd: ${{ needs.get-versions.outputs.virtiofsd_version }}" >> release_notes.txt
echo "" >> release_notes.txt
echo "The hash of the Qemu files is: ${{ needs.check-release-existence.outputs.qemu_hash }}" >> release_notes.txt
Expand Down Expand Up @@ -328,11 +351,14 @@ jobs:
VIRTIOFSD_LINK="${RUNS_URL}/${{ needs.build-Virtiofsd-artifacts.outputs.artifact_run_id }}"

FC_RELEASE_URL="https://github.com/firecracker-microvm/firecracker/releases"
FC_LINK="${FC_RELEASE_URL}/download/${{ needs.get-versions.outputs.firecracker_version }}"
FC_LINK="${FC_RELEASE_URL}/tag/${{ needs.get-versions.outputs.firecracker_version }}"
CLH_RELEASE_URL=https://github.com/cloud-hypervisor/cloud-hypervisor/releases
CLH_LINK="${CLH_RELEASE_URL}/tag/${{ needs.get-versions.outputs.cloud-hypervisor_version }}"
echo "qemu=${QEMU_LINK}" >> $GITHUB_OUTPUT
echo "solo5=${SOLO5_LINK}" >> $GITHUB_OUTPUT
echo "virtiofsd=${VIRTIOFSD_LINK}" >> $GITHUB_OUTPUT
echo "firecracker=${FC_LINK}" >> $GITHUB_OUTPUT
echo "cloud-hypervisor=${CLH_LINK}" >> $GITHUB_OUTPUT
if ${{ needs.check-release-existence.outputs.exists == 'false' }}
then
echo "release=" >> $GITHUB_OUTPUT
Expand All @@ -347,6 +373,7 @@ jobs:
SOLO5_TEXT: "Solo5 ${{ needs.build-Solo5-artifacts.outputs.artifact_suffix }}: ${{ steps.links.outputs.solo5 }}"
VFS_TEXT: "Virtiofsd ${{ needs.build-Virtiofsd-artifacts.outputs.artifact_suffix }}: ${{ steps.links.outputs.virtiofsd }}"
FC_TEXT: "Firecracker ${{ needs.get-versions.outputs.firecracker_version }}: ${{ steps.links.outputs.firecracker }}"
CLH_TEXT: "Cloud-Hypervisor ${{ needs.get-versions.outputs.cloud-hypervisor_version }}: ${{ steps.links.outputs.cloud-hypervisor }}"
with:
script: |
const body = `
Expand All @@ -355,6 +382,7 @@ jobs:
- ${process.env.SOLO5_TEXT}
- ${process.env.VFS_TEXT}
- ${process.env.FC_TEXT}
- ${process.env.CLH_TEXT}
`;
await github.rest.issues.createComment({
issue_number: context.issue.number,
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ The following components are currently supported:

- [**QEMU**](https://www.qemu.org/)
- [**Firecracker**](https://firecracker-microvm.github.io/)
- [**Cloud-Hypervisor**](https://www.cloudhypervisor.org/)
- [**Solo5**](https://github.com/Solo5/solo5)
- [**virtiofsd**](https://gitlab.com/virtio-fs/virtiofsd)

Expand Down Expand Up @@ -53,14 +54,14 @@ following configuration files:
Releases follow this naming format:

```
FC-<firecracker_version>_S5-<solo5_version>_VFS-<virtiofsd_version>_QM-<qemu_version>-<qemu_config_and_exclude_files_hash>
FC-<firecracker_version>_CLH-<cloud-hypervisor-version>_S5-<solo5_version>_VFS-<virtiofsd_version>_QM-<qemu_version>-<qemu_config_and_exclude_files_hash>
```

For example `FC-v1.7.0_S5-v0.9.3_VFS_-v1.13.1_QM-v10.1.1-d4dd3` contains
For example `FC-v1.7.0_CLH-v50.0_S5-v0.9.3_VFS_-v1.13.1_QM-v10.1.1-d4dd3` contains
statically built artifacts for:
- Firecracker v1.7.0
- Cloud Hypervisor v50.0
- Solo5 v0.9.3
- Virtiofsd v1.13.1
- Qemu v10.1.1 with a hash generated by the config files and the excluded files
file under Qemu's directory.

1 change: 1 addition & 0 deletions cloud-hypervisor/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v50.0
Loading