Skip to content

Commit

Permalink
CI: move FreeBSD tests to GHA
Browse files Browse the repository at this point in the history
Signed-off-by: Akihiro Suda <[email protected]>
  • Loading branch information
AkihiroSuda committed Aug 5, 2023
1 parent 65934e9 commit 855da42
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 20 deletions.
20 changes: 0 additions & 20 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,3 @@
freebsd_task:
name: FreeBSD
timeout_in: 20m
compute_engine_instance:
image_project: freebsd-org-cloud-dev
image: family/freebsd-13-0
platform: freebsd
cpu: 2
memory: 4G
env:
NERDCTL_RUN_ARGS: --net none dougrabson/freebsd-minimal:13 echo "Nerdctl is up and running."
install_script:
- pkg install -y go containerd runj
test_script:
- daemon -o containerd.out containerd
- go test -v ./pkg/...
- cd cmd/nerdctl
- sudo go run . run $NERDCTL_RUN_ARGS | grep running
# TODO: run `go test -v ./cmd/...`

windows_task:
name: "Windows"
timeout_in: 20m
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,31 @@ jobs:
sudo apt-get install -y expect
- name: "Ensure that the integration test suite is compatible with Docker"
run: go test -timeout 20m -v -exec sudo ./cmd/nerdctl/... -args -test.target=docker -test.kill-daemon


test-integration-freebsd:
name: FreeBSD
# "Larger" runner is needed for nested virtualization
# https://github.com/organizations/containerd/settings/actions/runners
runs-on: ubuntu-latest-4-cores
timeout-minutes: 20

steps:
- uses: actions/[email protected]
- uses: actions/cache@v3
with:
path: /root/.vagrant.d
key: vagrant-${{ matrix.box }}
- name: Set up vagrant
run: |
sudo apt-get update
sudo apt-get install -y libvirt-daemon libvirt-daemon-system vagrant vagrant-libvirt
sudo systemctl enable --now libvirtd
- name: Boot VM
run: |
ln -sf Vagrantfile.freebsd Vagrantfile
sudo vagrant up --no-tty
- name: test-unit
run: sudo vagrant up --provision-with=test-unit
- name: test-integration
run: sudo vagrant up --provision-with=test-integration
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ _output

# vagrant
/.vagrant
Vagrantfile
64 changes: 64 additions & 0 deletions Vagrantfile.freebsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Copyright The containerd Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Vagrantfile for FreeBSD
Vagrant.configure("2") do |config|
config.vm.box = "generic/freebsd13"

memory = 2048
cpus = 1
config.vm.provider :virtualbox do |v, o|
v.memory = memory
v.cpus = cpus
end
config.vm.provider :libvirt do |v|
v.memory = memory
v.cpus = cpus
end

config.vm.synced_folder ".", "/vagrant", type: "rsync"

config.vm.provision "install", type: "shell", run: "once" do |sh|
sh.inline = <<~SHELL
#!/usr/bin/env bash
set -eux -o pipefail
pkg install -y go containerd runj
cd /vagrant
go install ./cmd/nerdctl
SHELL
end

config.vm.provision "test-unit", type: "shell", run: "never" do |sh|
sh.inline = <<~SHELL
#!/usr/bin/env bash
set -eux -o pipefail
cd /vagrant
go test -v ./pkg/...
SHELL
end

config.vm.provision "test-integration", type: "shell", run: "never" do |sh|
sh.inline = <<~SHELL
#!/usr/bin/env bash
set -eux -o pipefail
daemon -o containerd.out containerd
sleep 3
/root/go/bin/nerdctl run --rm --net=none dougrabson/freebsd-minimal:13 echo "Nerdctl is up and running."
SHELL
end

end

0 comments on commit 855da42

Please sign in to comment.