Skip to content

Commit

Permalink
ci: Add Windows guest integration tests for GHA
Browse files Browse the repository at this point in the history
Resolves cloud-hypervisor#324. It also updates the Windows guest image from Windows 2019
to Windows 2022.

Signed-off-by: Akira Moroo <[email protected]>
  • Loading branch information
retrage committed Mar 22, 2024
1 parent 6344e11 commit c165435
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 39 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/integration-windows.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Rust Hypervisor Firmware Tests (Windows Guest)
on: [pull_request, merge_group]

jobs:
build:
name: Tests (Windows Guest)
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-latest' || 'garm-jammy-16' }}
steps:
- name: Code checkout
if: ${{ github.event_name != 'pull_request' }}
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Docker
if: ${{ github.event_name != 'pull_request' }}
run: |
sudo apt-get update
sudo apt-get -y install ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt install -y docker-ce docker-ce-cli
- name: Install Azure CLI
if: ${{ github.event_name != 'pull_request' }}
run: |
sudo apt install -y ca-certificates curl apt-transport-https lsb-release gnupg
curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ jammy main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
sudo apt update
sudo apt install -y azure-cli
- name: Download Windows image
if: ${{ github.event_name != 'pull_request' }}
run: |
mkdir $HOME/workloads
az storage blob download --container-name private-images --file "$HOME/workloads/windows-server-2022-amd64-2.raw" --name windows-server-2022-amd64-2.raw --connection-string "${{ secrets.CH_PRIVATE_IMAGES }}"
- name: Run Windows guest integration tests
if: ${{ github.event_name != 'pull_request' }}
timeout-minutes: 60
run: scripts/dev_cli.sh tests --integration-windows
- name: Skipping build for PR
if: ${{ github.event_name == 'pull_request' }}
run: echo "Skipping build for PR"
37 changes: 0 additions & 37 deletions Jenkinsfile

This file was deleted.

2 changes: 1 addition & 1 deletion scripts/run_integration_tests_windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ arch="$(uname -m)"
WORKLOADS_DIR="$HOME/workloads"
mkdir -p "$WORKLOADS_DIR"

WIN_IMAGE_FILE="$WORKLOADS_DIR/windows-server-2019.raw"
WIN_IMAGE_FILE="$WORKLOADS_DIR/windows-server-2022-amd64-2.raw"

# Check if the image is present
if [ ! -f "$WIN_IMAGE_FILE" ]; then
Expand Down
2 changes: 1 addition & 1 deletion src/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -672,7 +672,7 @@ mod tests {
mod windows {
use crate::integration::tests::*;

const WINDOWS_IMAGE_NAME: &str = "windows-server-2019.raw";
const WINDOWS_IMAGE_NAME: &str = "windows-server-2022-amd64-2.raw";

fn windows_auth() -> PasswordAuth {
PasswordAuth {
Expand Down

0 comments on commit c165435

Please sign in to comment.