diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 38844770..54e3ec2d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -258,6 +258,7 @@ jobs: matrix: os: - freebsd + - netbsd - openbsd steps: - diff --git a/Dockerfile b/Dockerfile index a9a3ce63..f7ea0d0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -105,6 +105,7 @@ COPY --link --from=buildx-build /usr/bin/docker-buildx /buildx FROM binaries-unix AS binaries-darwin FROM binaries-unix AS binaries-freebsd FROM binaries-unix AS binaries-linux +FROM binaries-unix AS binaries-netbsd FROM binaries-unix AS binaries-openbsd FROM scratch AS binaries-windows diff --git a/docker-bake.hcl b/docker-bake.hcl index ef01212a..a65973fa 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -48,6 +48,8 @@ target "lint" { "linux/s390x", "linux/ppc64le", "linux/riscv64", + "netbsd/amd64", + "netbsd/arm64", "openbsd/amd64", "openbsd/arm64", "windows/amd64", @@ -167,6 +169,8 @@ target "binaries-cross" { "linux/ppc64le", "linux/riscv64", "linux/s390x", + "netbsd/amd64", + "netbsd/arm64", "openbsd/amd64", "openbsd/arm64", "windows/amd64", diff --git a/hack/Vagrantfile.netbsd b/hack/Vagrantfile.netbsd new file mode 100644 index 00000000..e7bc821a --- /dev/null +++ b/hack/Vagrantfile.netbsd @@ -0,0 +1,32 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "generic/netbsd9" + config.vm.boot_timeout = 900 + config.vm.synced_folder ".", "/vagrant", type: "rsync" + config.ssh.keep_alive = true + + config.vm.provision "init", type: "shell", run: "once" do |sh| + sh.inline = <<~SHELL + set -x + mkdir -p /var/tmp + chmod 1777 /var/tmp + + pkgin -y install git mozilla-rootcerts + mozilla-rootcerts install + + ftp https://go.dev/dl/go#{ENV['GO_VERSION']}.netbsd-amd64.tar.gz + tar -C /var/tmp -xzf go#{ENV['GO_VERSION']}.netbsd-amd64.tar.gz + + cat << 'EOF' > /usr/bin/go-wrapper + #!/bin/sh + export TMPDIR="/var/tmp" + exec /var/tmp/go/bin/go "$@" + EOF + chmod +x /usr/bin/go-wrapper + + ln -s /usr/bin/go-wrapper /usr/bin/go + SHELL + end +end