add Vagrantfile to support cross-platform development

Update CONTRIBUTING to reflect plugin split
This commit is contained in:
Gabe Rosenhouse 2017-06-06 20:13:31 -07:00
parent a860d4d244
commit 9a96aa2981
3 changed files with 32 additions and 1 deletions

1
.gitignore vendored
View File

@ -25,3 +25,4 @@ _testmain.go
bin/ bin/
gopath/ gopath/
.vagrant

View File

@ -51,12 +51,21 @@ We generally require test coverage of any new features or bug fixes.
Here's how you can run the test suite on any system (even Mac or Windows) using Here's how you can run the test suite on any system (even Mac or Windows) using
[Vagrant](https://www.vagrantup.com/) and a hypervisor of your choice: [Vagrant](https://www.vagrantup.com/) and a hypervisor of your choice:
First, ensure that you have the [CNI repo](https://github.com/containernetworking/cni) and this repo (plugins) cloned side-by-side:
```bash
cd ~/workspace
git clone https://github.com/containernetworking/cni
git clone https://github.com/containernetworking/plugins
```
Next, boot the virtual machine and SSH in to run the tests:
```bash ```bash
vagrant up vagrant up
vagrant ssh vagrant ssh
# you're now in a shell in a virtual machine # you're now in a shell in a virtual machine
sudo su sudo su
cd /go/src/github.com/containernetworking/cni cd /go/src/github.com/containernetworking/plugins
# to run the full test suite # to run the full test suite
./test.sh ./test.sh

21
Vagrantfile vendored Normal file
View File

@ -0,0 +1,21 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.synced_folder "..", "/go/src/github.com/containernetworking"
config.vm.provision "shell", inline: <<-SHELL
set -e -x -u
apt-get update -y || (sleep 40 && apt-get update -y)
apt-get install -y git
wget -qO- https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz | tar -C /usr/local -xz
echo 'export GOPATH=/go' >> /root/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> /root/.bashrc
cd /go/src/github.com/containernetworking/plugins
SHELL
end