Merge pull request #264 from rosenhouse/test-with-vagrant
Add Vagrantfile, document how to run test suite in a vagrant VM
This commit is contained in:
commit
8a93673209
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
bin/
|
bin/
|
||||||
gopath/
|
gopath/
|
||||||
*.sw[ponm]
|
*.sw[ponm]
|
||||||
|
.vagrant
|
||||||
|
@ -37,10 +37,35 @@ This is a rough outline of how to prepare a contribution:
|
|||||||
- Make commits of logical units.
|
- Make commits of logical units.
|
||||||
- Make sure your commit messages are in the proper format (see below).
|
- Make sure your commit messages are in the proper format (see below).
|
||||||
- Push your changes to a topic branch in your fork of the repository.
|
- Push your changes to a topic branch in your fork of the repository.
|
||||||
- If you changed code, make sure the tests pass, and add any new tests as appropriate.
|
- If you changed code:
|
||||||
- Make sure any new code files have a license header.
|
- add automated tests to cover your changes, using the [Ginkgo](http://onsi.github.io/ginkgo/) & [Gomega](http://onsi.github.io/gomega/) style
|
||||||
|
- if the package did not previously have any test coverage, add it to the list
|
||||||
|
of `TESTABLE` packages in the `test` script.
|
||||||
|
- run the full test script and ensure it passes
|
||||||
|
- Make sure any new code files have a license header (this is now enforced by automated tests)
|
||||||
- Submit a pull request to the original repository.
|
- Submit a pull request to the original repository.
|
||||||
|
|
||||||
|
## How to run the test suite
|
||||||
|
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
|
||||||
|
[Vagrant](https://www.vagrantup.com/) and a hypervisor of your choice:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vagrant up
|
||||||
|
vagrant ssh
|
||||||
|
# you're now in a shell in a virtual machine
|
||||||
|
sudo su
|
||||||
|
cd /go/src/github.com/containernetworking/cni
|
||||||
|
|
||||||
|
# to run the full test suite
|
||||||
|
./test
|
||||||
|
|
||||||
|
# to focus on a particular test suite
|
||||||
|
cd plugins/main/loopback
|
||||||
|
go test
|
||||||
|
```
|
||||||
|
|
||||||
# Acceptance policy
|
# Acceptance policy
|
||||||
|
|
||||||
These things will make a PR more likely to be accepted:
|
These things will make a PR more likely to be accepted:
|
||||||
@ -48,7 +73,7 @@ These things will make a PR more likely to be accepted:
|
|||||||
* a well-described requirement
|
* a well-described requirement
|
||||||
* tests for new code
|
* tests for new code
|
||||||
* tests for old code!
|
* tests for old code!
|
||||||
* new code follows the conventions in old code
|
* new code and tests follow the conventions in old code and tests
|
||||||
* a good commit message (see below)
|
* a good commit message (see below)
|
||||||
|
|
||||||
In general, we will merge a PR once two maintainers have endorsed it.
|
In general, we will merge a PR once two maintainers have endorsed it.
|
||||||
|
20
Vagrantfile
vendored
Normal file
20
Vagrantfile
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- 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/cni"
|
||||||
|
|
||||||
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
|
set -e -x -u
|
||||||
|
|
||||||
|
apt-get update -y || (sleep 40 && apt-get update -y)
|
||||||
|
apt-get install -y golang git
|
||||||
|
echo "export GOPATH=/go" >> /root/.bashrc
|
||||||
|
export GOPATH=/go
|
||||||
|
go get github.com/tools/godep
|
||||||
|
cd /go/src/github.com/containernetworking/cni
|
||||||
|
/go/bin/godep restore
|
||||||
|
SHELL
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user