Commit graph

184 commits

Author SHA1 Message Date
baude
d2601eeaa3 build varlink without GOPATH
when gopath was not explicitly set, make would fail due
to the varlink generator.  this symlink in the makefile
addresses that.

fixes: #1842

Signed-off-by: baude <bbaude@redhat.com>
2019-02-13 12:25:08 -06:00
Lars Karlitski
38e42476cb Makefile: Don't include quotes around GIT_COMMIT
These quotes were included in the varlink `GetVersion()` call.

Signed-off-by: Lars Karlitski <lars@karlitski.net>
2019-02-12 14:47:49 +01:00
baude
a1ab6788e4 Remove urfave/cli from libpod
This is the final cleanup to remove urfave/sli from libpod.  Removed
old, disabled tests that have not been run in over a year.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-11 17:48:34 -06:00
baude
25a3923b61 Migrate to cobra CLI
We intend to migrate to the cobra cli from urfave/cli because the
project is more well maintained.  There are also some technical reasons
as well which extend into our remote client work.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-08 10:26:43 -06:00
OpenShift Merge Robot
01f436ca47
Merge pull request #2288 from vrothberg/vendor-docs
Vendor docs
2019-02-07 15:46:49 +01:00
Valentin Rothberg
0f0ba53030 make vendor: always check for latest vndr
@baude and I have recently debugged a `make vendor` issue, where
different versions of `vndr` leave slightly different states behind.
This ultimately leads to inconsistencies with the CI, which always
fetches the latest version.

To avoid such issues in the future, always use the latest version of
`vndr` by checking for new versions of it prior to execution.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-07 14:25:54 +01:00
Hervé Beraud
7c5641cddf Add varlink generate to the make documentation
Minor improvement who add helping comment to the
varlink generate target.

Signed-off-by: Hervé Beraud <hberaud@redhat.com>
2019-02-07 09:35:11 +01:00
OpenShift Merge Robot
72fcfb7e86
Merge pull request #2283 from 4383/improve-makefile
Generate make helping message dynamicaly.
2019-02-06 22:45:51 +01:00
Hervé Beraud
e0c3af6523 Generate make helping message dynamicaly.
Generate make helping message dynamicaly by using
python code snippet inside Makefile.

All commented make targets will be added to the
help message. To be added to the helping message
comment need to start with '## '.

These specials comments are detected by the python code.
Python code generate the helping output from these results.

Notice that this commit introduce a dependency with python (compatible python 2 and 3).

Signed-off-by: Hervé Beraud <hberaud@redhat.com>
2019-02-06 20:15:53 +01:00
Ed Santiago
aa881a0c71 Makefile: minor fix to reenable system tests
PR #2259 removed the .install.gomega Makefile target but
didn't clean up two references to it. Do so now.

Also, when setting up GOPKGBASEDIR symlink, use -f (force)
flag; otherwise subsequent makes will fail.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-06 12:04:21 -07:00
OpenShift Merge Robot
e249966e72
Merge pull request #2270 from cevich/fail_faster
Apply 45min timeout to integration tests
2019-02-06 14:00:38 +01:00
Valentin Rothberg
9ac0ebb079 Cirrus: add vendor_check_task
* Make sure that all vendored dependencies are in sync with the code and
  the vendor.conf by running `make vendor` with a follow-up status check
  of the git tree.

* Vendor ginkgo and gomega to include the test dependencies.

Signed-off-by: Chris Evic <cevich@redhat.com>
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-06 11:14:06 +01:00
Chris Evich
ede38d3600
Apply 50min timeout to integration tests
IMHO, longer than this waiting for automated testing is "too long".

Scientificaly speaking, based on thousands of runs across many
platforms, successful runs always happen in less time.  Normally
Ubuntu passes in 35-40 minutes, and the Fedoras do it in 25-30.

If they take longer, something is likely badly broken.  In that
case, it's better to fail within a short/defined time, than wait
for the (much longer) automation-level timeout and inevitable
failure.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-02-05 13:54:48 -05:00
Giuseppe Scrivano
80b75d299e
tests: allow to override the OCI runtime
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-05 15:35:50 +01:00
OpenShift Merge Robot
778f9867fd
Merge pull request #2253 from kunalkushwaha/quick-dockerfile-build
Reduce Dockerfile based build time for libpod.
2019-02-04 23:05:19 +01:00
Kunal Kushwaha
5eb6fbe1c2 Reduce Dockerfile based build time for libpod.
libpod code added at end of Dockerfile, avoids
git clone of other packages in Dockerfile on subsequent builds.

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2019-02-01 11:36:52 +09:00
Chris Evich
10d749b9a8
Set SELinux type on bin/podman after install
Different components of testing reference the podman binary differently.
While they are identical in content, their SELinux types are not the
same, depending on build location.  Avoid confusion and test failures
by always matching the bin/podman SELinux type to that of $BINDIR/podman
 **after** install.  This ensures even if the code or default contexts
change, a subsequent `make install` will re-match the SELinux type.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-01-30 08:26:49 -05:00
Matthew Heon
2cff111d71 Update README for v1.0.0
Also bump gitvalidation epoch - we usually do this every release,
but v1.0.0 is on a branch so we need a separate commit for master

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-01-16 12:05:44 -05:00
baude
b30a56c156 Run integrations test with remote-client
Add the ability to run the integration (ginkgo) suite using
the remote client.

Only the images_test.go file is run right now; all the rest are
isolated with a // +build !remotelinux.  As more content is
developed for the remote client, we can unblock the files and
just block single tests as needed.

Signed-off-by: baude <bbaude@redhat.com>
2019-01-14 14:51:32 -06:00
baude
43c6da22b9 Add darwin support for remote-client
Add the ability to cross-compile podman remote for OSX.

Also, add image exists and tag to remote-client.

Signed-off-by: baude <bbaude@redhat.com>
2019-01-11 11:30:28 -06:00
Valentin Rothberg
545f244212 vendor make target
Add a `make vendor` target calls `vndr` with a specified whitelist to
avoid deleting important files (currently the varlink/go project).

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-01-11 13:12:14 +01:00
Matthew Heon
07f3b147f1 Remove easyjson in preparation for switch to jsoniter
The jsoniter library does not require code generation, which is a
massive advantage over easyjson (it's also about the same in
performance). Begin moving over to it by removing the existing
easyjson code.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-01-10 15:48:09 -05:00
Jhon Honce
45fb935fe4 Move python code from contrib to it's own repo python-podman
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-01-10 11:27:50 -07:00
Daniel J Walsh
db19bed6e8
Add Validate completions
In podman 0.12.0 we have invalid completions.  These should have been
caught during testing. This check will throw an error if the completions
do not successfully execute.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-01-08 12:55:21 -05:00
OpenShift Merge Robot
8c8d895d66
Merge pull request #2098 from baude/remote
Add ability to build golang remote client
2019-01-07 11:54:55 -08:00
baude
41fb81d074 Add ability to build golang remote client
Add the ability to build a remote client in golang that uses all
the same front-end cli code and output code. The initial limitations
here are that it can only be a local client while the bridge and
resolver code is being written for the golang varlink client.

Tests and docs will be added in subsequent PRs.

Signed-off-by: baude <bbaude@redhat.com>
2019-01-07 12:43:57 -06:00
Matthew Heon
57d2a56920 Readd Python testing
We accidentally merged a PR with a commit temporarily disabling
the Python tests. Reenable them here.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-01-04 16:16:52 -05:00
Matthew Heon
01858c0eba DO NOT MERGE temporarily remove python tests
It's impossible to get good debug out of the python tests, so
nuke them for now so I can figure out what's wrong.

DO NOT MERGE THIS COMMIT

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-01-04 09:51:09 -05:00
Valentin Rothberg
75578aad61 add container-init support
Add support for executing an init binary as PID 1 in a container to
forward signals and reap processes.  When the `--init` flag is set for
podman-create or podman-run, the init binary is bind-mounted to
`/dev/init` in the container and "/dev/init --" is prepended to the
container's command.

The default base path of the container-init binary is `/usr/libexec/podman`
while the default binary is catatonit [1].  This default can be changed
permanently via the `init_path` field in the `libpod.conf` configuration
file (which is recommended for packaging) or temporarily via the
`--init-path` flag of podman-create and podman-run.

[1] https://github.com/openSUSE/catatonit

Fixes: #1670
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-01-04 11:42:03 +01:00
OpenShift Merge Robot
65c5883f5c
Merge pull request #1757 from kunalkushwaha/contrib-perftest
perf test a stress test to profile CPU load of podman
2018-12-20 06:51:01 -08:00
Giuseppe Scrivano
98c5d9d962
Makefile: validate that each commit can at least build
it is very useful when using git bisect that at least the commit can
build.

got inspiration from: https://twitter.com/pid_eins/status/1072797993760423941

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-12-19 16:53:22 +01:00
Kunal Kushwaha
658f772c16 perf test a stress test to profile CPU load of podman
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2018-12-19 16:05:21 +09:00
Matthew Heon
fbf7422bc5 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-12-13 13:55:32 -05:00
Matthew Heon
4c68f3d0ab Makefile tweaks to fix make shell
Also, bump the Dockerfile to use the latest Golang image, as most
of our testing is now done on 1.11

Fixes: #1999

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-12-12 14:41:49 -05:00
Vincent Demeester
0b0096382c
No need to use -i in go build (with go 1.10 and above)
> The go build command now maintains a cache of recently built
  packages, separate from the installed packages in $GOROOT/pkg or
  $GOPATH/pkg. The effect of the cache should be to speed builds that
  do not explicitly install packages or when switching between
  different copies of source code (for example, when changing back and
  forth between different branches in a version control system). The
  old advice to add the -i flag for speed, as in go build -i or go
  test -i, is no longer necessary: builds run just as fast without -i.

This should also fix podman builds for NixOS, snap-installed go, …

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
2018-12-11 15:26:01 +01:00
Matthew Heon
d16f791851 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-12-07 14:14:51 -05:00
OpenShift Merge Robot
d4af59d57c
Merge pull request #1788 from cevich/cirrus_base_images
Codify and document base-image production + Enable testing with Fedora
2018-12-07 07:46:46 -08:00
Matthew Heon
758b7a5a63 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-12-06 17:33:10 -05:00
Chris Evich
8d7fdc7d79
Cirrus: Use Makefile for image-building
The packer tool takes JSON as input for the details of producing VM
images to be used for PR CI-testing.  JSON is not a very human-friendly
format, without support for comments and frequently containing lots of
duplicate data.

Fix this by using a Makefile + simple python one-liner to convert
from a human-friendly YAML format into packer-native JSON.  This allows
use of anchors/aliases to reduce duplication, and allows inline comments
for easier maintainability.  This also allows separating the 'test'
action from the 'build' action, for earlier and better syntax problem
detection.

Lastly, there are some minor ``lib.sh`` and ``integration_test.sh``
updates to support future work, and slightly improve the build and
test environments.

Signed-off-by: Chris Evich <cevich@redhat.com>
2018-12-06 15:39:18 -05:00
OpenShift Merge Robot
cd5742ff47
Merge pull request #1385 from ypu/systemtest
Add system test with ginkgo
2018-11-16 08:51:42 -08:00
OpenShift Merge Robot
39ef6d43d0
Merge pull request #1756 from isimluk/update-dependent-metalinter
Update metalinter dependency
2018-11-16 05:02:03 -08:00
Yiqiao Pu
c1bc0a7192 Add a rule to compile system test in Makefile
Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2018-11-16 11:19:37 +08:00
Yiqiao Pu
a7122d68de The system test write with ginkgo
The tests can be filter by --focus and --skip to fit different test
target. Also be able to set global options and cmd options by export
it to ENV to fit different test matrix.

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2018-11-16 10:49:12 +08:00
Yiqiao Pu
74bcfc2f96 Separate common used test functions and structs to test/utils
Put common used test functions and structs to a separated package.
So we can use them for more testsuites.

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2018-11-16 10:49:00 +08:00
Matthew Heon
02bd5d4443 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-11-15 15:40:56 -05:00
Šimon Lukašík
868e280421 Lint: Update metalinter dependency
We fixated on old metalinter dependency in past based on experience of
metalinter being oftentimes broke and hence broking our build. See
762f508d9ca97cdbaee6053b663e98aee9cae081 in cri-o for more details.

Now, dated metalinter is messing up with my environment (like it is
panicing on containters/storage) so let's see if we can move to more
current version of metalinter.

Signed-off-by: Šimon Lukašík <slukasik@redhat.com>
2018-11-10 10:52:24 +01:00
Matthew Heon
a26ec2a0d3 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-11-08 14:09:03 -05:00
Šimon Lukašík
c04e090380 Do never override podman with docker
Signed-off-by: Šimon Lukašík <slukasik@redhat.com>
2018-11-03 08:58:22 +01:00
Anders F Björklund
b2fef1a8ba Fix setting of version information
It was setting the wrong variable (CamelCase)
in the wrong module ("main", not "libpod")...

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2018-10-31 00:27:08 +01:00
Daniel J Walsh
9250747092
Eat our own dogfood
Switch all tests to use podman installed on the system, or Docker if podman
does not exist.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-23 17:36:37 -04:00