Skip to content

Commit b926aab

Browse files
committed
ensure qemu
Signed-off-by: Jeffrey Sica <me@jeefy.dev>
1 parent 1586998 commit b926aab

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

.github/workflows/change-file-build-new-actions-vm.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,21 @@ on:
1111
jobs:
1212
build:
1313
name: Build new Actions VM
14-
runs-on: ubuntu-latest
14+
runs-on: ubuntu-latest-8-cores
1515

1616
steps:
1717
- uses: actions/checkout@v4
1818
- name: Setup Go
1919
uses: actions/setup-go@v5
2020
with:
2121
go-version: '1.24.x'
22+
- name: Set up QEMU
23+
run : |
24+
sudo apt install qemu-system-x86 xorriso
25+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
26+
sudo udevadm control --reload-rules
27+
sudo udevadm trigger --name-match=kvm
28+
2229
- name: Install dependencies
2330
run: cd ci/gha-runner-vm && go get .
2431
- name: Install Packer
@@ -54,4 +61,4 @@ jobs:
5461
OCI_CLI_KEY_CONTENT: ${{ secrets.OCI_CLI_KEY_CONTENT }}
5562
OCI_CLI_REGION: ${{ secrets.OCI_CLI_REGION }}
5663
OCI_INSTANCE_ID: ${{ secrets.OCI_INSTANCE_ID }}
57-
run: export PATH=$PATH:$HOME/bin && cd ci/gha-runner-vm && go run main.go
64+
run: export PATH=$PATH:$HOME/bin && cd ci/gha-runner-vm && PACKER_LOG=1 go run main.go

.github/workflows/periodic-build-new-actions-vm.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,20 @@ on:
66

77
jobs:
88
build:
9-
runs-on: ubuntu-latest
9+
runs-on: ubuntu-latest-8-cores
1010

1111
steps:
1212
- uses: actions/checkout@v4
1313
- name: Setup Go
1414
uses: actions/setup-go@v5
1515
with:
1616
go-version: '1.24.x'
17+
- name: Set up QEMU
18+
run : |
19+
sudo apt install qemu-system-x86 xorriso
20+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
21+
sudo udevadm control --reload-rules
22+
sudo udevadm trigger --name-match=kvm
1723
- name: Install dependencies
1824
run: cd ci/gha-runner-vm && go get .
1925
- name: Install Packer
@@ -50,4 +56,4 @@ jobs:
5056
OCI_CLI_KEY_CONTENT: ${{ secrets.OCI_CLI_KEY_CONTENT }}
5157
OCI_CLI_REGION: ${{ secrets.OCI_CLI_REGION }}
5258
OCI_INSTANCE_ID: ${{ secrets.OCI_INSTANCE_ID }}
53-
run: export PATH=$PATH:$HOME/bin && cd ci/gha-runner-vm && go run main.go
59+
run: export PATH=$PATH:$HOME/bin && cd ci/gha-runner-vm && PACKER_LOG=1 go run main.go

ci/gha-runner-vm/main.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212
"net/http"
1313
"os"
1414
"os/exec"
15+
"strconv"
1516
"strings"
17+
"time"
1618

1719
"github.com/google/go-github/v71/github"
1820
"github.com/oracle/oci-go-sdk/v65/core"
@@ -52,7 +54,7 @@ func main() {
5254
func run(cmd *cobra.Command, argv []string) error {
5355
filepath := "images/ubuntu/templates/"
5456
sourceFile := fmt.Sprintf("%s%s-%s.pkr.hcl", filepath, args.os, args.osVersion)
55-
imageFile := fmt.Sprintf("build/%s-%s/image.raw", args.os, args.osVersion)
57+
imageFile := fmt.Sprintf("build/image.raw")
5658
filename := ""
5759
imageName := fmt.Sprintf("%s-%s-%s-gha-image", args.os, args.osVersion, args.arch)
5860

@@ -123,15 +125,17 @@ func run(cmd *cobra.Command, argv []string) error {
123125
}
124126
log.Printf("Packer build completed successfully.\n")
125127

126-
command = exec.Command("oci", "os", "object", "put", "--parallel-upload-count", "100", "--bucket-name", args.bucketName, "--name", "ubuntu-gha-image", "--file", imageFile)
128+
timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
129+
130+
command = exec.Command("oci", "os", "object", "put", "--parallel-upload-count", "100", "--bucket-name", args.bucketName, "--name", fmt.Sprintf("ubuntu-gha-image-%s", timestamp), "--file", imageFile)
127131

128132
command.Stdout = os.Stdout
129133
if err := command.Run(); err != nil {
130134
log.Print(command.String())
131135
log.Fatal("could not run command: ", err)
132136
}
133137

134-
command = exec.Command("oci", "compute", "image", "import", "from-object", "--bucket-name", args.bucketName, "--compartment-id", args.compartmentId, "--namespace", args.namespace, "--operating-system", imageName, "--display-name", imageName, "--name", imageName, "--operating-system-version", *selectedRelease.TagName)
138+
command = exec.Command("oci", "compute", "image", "import", "from-object", "--bucket-name", args.bucketName, "--compartment-id", args.compartmentId, "--namespace", args.namespace, "--operating-system", imageName, "--display-name", imageName, "--name", fmt.Sprintf("ubuntu-gha-image-%s", timestamp), "--operating-system-version", *selectedRelease.TagName)
135139
command.Stdout = os.Stdout
136140
if err := command.Run(); err != nil {
137141
log.Print(command.String())
@@ -346,7 +350,7 @@ source "qemu" "img" {
346350
iso_url = "%s"
347351
iso_checksum = "%s"
348352
memory = 12000
349-
cpus = 3
353+
cpus = 6
350354
output_directory = "build/"
351355
accelerator = "kvm"
352356
disk_size = "80G"
@@ -358,6 +362,7 @@ source "qemu" "img" {
358362
ssh_username = "ubuntu"
359363
ssh_password = "ubuntu"
360364
ssh_timeout = "60m"
365+
headless = true
361366
}`, args.isoURL, args.isoChecksum)
362367

363368
replacements[`sources = ["source.azure-arm.build_image"]`] = `sources = ["source.azure-arm.build_image", "source.qemu.img"]

0 commit comments

Comments
 (0)