Skip to content

Commit 1e2ce2b

Browse files
committed
Try to run Vagrant
1 parent 2a4cd8f commit 1e2ce2b

File tree

3 files changed

+45
-5
lines changed

3 files changed

+45
-5
lines changed

.github/workflows/build.yml

+27-4
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ on:
2525
required: false
2626

2727
env:
28-
HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }}
29-
HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }}
30-
PACKER_LOG: 1
28+
VAGRANT_BOX_UPDATE_CHECK_DISABLE: 1
29+
VAGRANT_CHECKPOINT_DISABLE: 1
30+
VAGRANT_FORCE_COLOR: 1
3131

3232
jobs:
3333
build:
@@ -55,14 +55,15 @@ jobs:
5555
- uses: actions/checkout@v4
5656
with:
5757
fetch-depth: 0
58+
path: src
5859
- run: >-
5960
wget -O- https://apt.releases.hashicorp.com/gpg
6061
| sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
6162
- run: >-
6263
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
6364
| sudo tee /etc/apt/sources.list.d/hashicorp.list
6465
- run: sudo apt-get update
65-
- run: sudo apt-get install -y --no-install-recommends packer qemu-system-x86 qemu-utils
66+
- run: sudo apt-get install -y --no-install-recommends packer qemu-system-x86 qemu-system-modules-spice qemu-utils vagrant libvirt-daemon-system libvirt-dev dnsmasq
6667
- run: sudo apt-get clean -y
6768
- run: sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc
6869
- run: sudo docker image prune --all --force
@@ -71,8 +72,30 @@ jobs:
7172
sudo udevadm control --reload-rules
7273
sudo udevadm trigger --name-match=kvm
7374
- run: packer init .
75+
working-directory: src
7476
- run: >-
7577
packer build
7678
${{ !inputs.publish && '-except vagrant-registry' || '' }}
7779
-only qemu.${{ matrix.build }}
7880
.
81+
working-directory: src
82+
env:
83+
HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }}
84+
HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }}
85+
PACKER_LOG: 1
86+
- run: mkdir test
87+
- run: vagrant plugin install --verbose vagrant-libvirt
88+
working-directory: test
89+
- run: vagrant box add --clean --force --name ${{ matrix.build }} ../src/*.box
90+
working-directory: test
91+
- run: rm src/*.box
92+
- run: vagrant init --template ../src/test/Vagrantfile.erb ${{ matrix.build }}
93+
working-directory: test
94+
- run: |
95+
sudo mkdir -p /etc/qemu
96+
echo "allow virbr0" | sudo tee /etc/qemu/bridge.conf
97+
sudo chmod u+s /usr/lib/qemu/qemu-bridge-helper
98+
- run: vagrant up
99+
working-directory: test
100+
- run: vagrant destroy --force --graceful
101+
working-directory: test

Vagrantfile

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Vagrant.configure(2) do |config|
2-
config.vm.provider 'libvirt' do |libvirt, override|
2+
config.vm.provider :libvirt do |libvirt|
33
libvirt.memory = 4096
44

55
if File.exist?('/dev/kvm')
@@ -34,4 +34,8 @@ Vagrant.configure(2) do |config|
3434
end
3535

3636
config.vm.synced_folder '.', '/vagrant', disabled: true
37+
38+
if /^alpine\d+$/ =~ '{{build_name}}'
39+
config.ssh.sudo_command = 'doas -n -u root %c'
40+
end
3741
end

test/Vagrantfile.erb

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Vagrant.configure("2") do |config|
2+
config.vm.box = "<%= box_name %>"
3+
<% if box_version -%>
4+
config.vm.box_version = "<%= box_version %>"
5+
<% end -%>
6+
<% if box_url -%>
7+
config.vm.box_url = "<%= box_url %>"
8+
<% end -%>
9+
config.vm.provider :libvirt do |libvirt|
10+
libvirt.qemu_use_session = true
11+
libvirt.video_accel3d = false
12+
end
13+
end

0 commit comments

Comments
 (0)