aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* go build: use `-mod=vendor` for go >= 1.11.xValentin Rothberg2019-08-01
| | | | | | | | | | | Go 1.13.x isn't sensitive to the GO111MODULE environment variable causing builds to not use the vendored sources in ./vendor. Force builds of module-supporting go versions to use the vendored sources by setting -mod=vendor. Verified in a fedora:rawhide container. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Cirrus: Fix release dependenciesChris Evich2019-07-31
| | | | | | | | | | | | | | | | | | | | | The release-task ***must*** always execute last, in order to guarantee a consistent cache of release archives from dependent tasks. It accomplishes this by verifying it's task-number matches one-less than the total number of tasks. Previous to this commit, a YAML anchor/alias was used to avoid duplication of the dependency list between 'success' and 'release' However, it's been observed that this opens the possibility for 'release' and 'success' tasks to race when running on a PR. Because YAML anchor/aliases cannot be used to modify lists, duplication is required to make 'release' actually depend upon 'success'. This duplication will introduce an additional maintenance burden. Though when adding a new task, it's already very easy to forget to update the 'depends_on' list. Assist both cases by the addition unit-tests to verify ``.cirrus.yml`` dependency contents and structure. Signed-off-by: Chris Evich <cevich@redhat.com>
* Documenation & build automation for remote darwinAshley Cui2019-07-25
| | | | | | | | Created shell script to automatically compile remote-only docs & rename Added make brew-pkg to automatically package files needed for homebrew Add missing docs Signed-off-by: Ashley Cui <ashleycui16@gmail.com>
* golangci-lint phase 4baude2019-07-22
| | | | | | | | | | | clean up some final linter issues and add a make target for golangci-lint. in addition, begin running the tests are part of the gating tasks in cirrus ci. we cannot fully shift over to the new linter until we fix the image on the openshift side. for short term, we will use both Signed-off-by: baude <bbaude@redhat.com>
* Make GOPATH-related symlinking more preciseLawrence Chan2019-07-17
| | | | | | | | | | | | This change tweaks the symlink commands that are invoked when libpod is not on GOPATH. This has the following effects: - If the working directory is not "libpod", it will still create the symlink at the correct github.com/containers/libpod path. - If the github.com/varlink directory/symlink already exists, it will still create the symlink at the intended path. Signed-off-by: Lawrence Chan <element103@gmail.com>
* analyse package sizesValentin Rothberg2019-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Analyse the size of all go-packages used during the build process via the newly added `hack/analyses/go-archive-analysis.sh` script. The script expects the `WORK` environment variable to be set, which points to a temporary work directory generated by `go build`. To generate such a work directory, set the `BUILDFLAGS="-work -a"`: * `-work` for creating the work directory * `-a` to force rebuilding all packages even when already cached The workflow may look as follows: ``` $ BUILDFLAGS="-work -a" make podman [...] WORK=/tmp/go-build127001249 $ WORK=/tmp/go-build127001249 ./hack/analyses/go-archive-analysis.sh ``` The output of the script has the format `$SIZE $PACKAGE` where $SIZE is the size of the compiled version of the go package (i.e., `.a` file) and $PACKAGE for the corresponding package, for instance, `math/big` for a stdlib package or vendor/... for vendored packages. Credits to the authors of https://github.com/jondot/goweight, which inspired this work. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Merge pull request #3106 from cevich/cirrus_releaseOpenShift Merge Robot2019-07-10
|\ | | | | Cirrus: Automate releasing of tested binaries
| * Cirrus: Automate releasing of tested binariesChris Evich2019-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's desirable to make archives available of builds containing actual tested content. While not official distro-releases, these will enable third-party testing, experimentation, and development for both branches (e.g. "master") and pull requests (e.g. "pr3106"). * Add a Makefile targets for archiving both regular podman binaries and the remote-client. Encode release metadata within these archives so that their exact source can be identified. * Fix bug with cross-compiling remote clients for the Windows and Darwin platforms. * Add unit-testing of cross-compiles for Windows and Darwin platforms. * A few small CI-script typo-fixes * Add a script which operates in two modes: 1. Call Makefile targets which produce release archives. Upload the archive to Cirrus-CI's built-in caching system using reproducible cache keys. 2. Utilize reproduced cache keys to attempt download of cache from each tasks. When successful, parse the file's release metadata, using it to name the archive file. Upload all recovered archives to a publicly accessible storage bucket for future reference. * Update the main testing task to call the script in mode #1 for all primary platforms. * Add a new `$SPECIALMODE` task to call the script in mode #1 for Windows and Darwin targets. * Add a new 'release' task to the CI system, dependent upon all other tasks. This new tasks executes the script in mode #2. * Update CI documentation Signed-off-by: Chris Evich <cevich@redhat.com>
* | make localsystem: wipe all user config stateEd Santiago2019-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CI is experiencing failures in the system_test step, caused by podman commands issuing the following warning: time="2019-07-09T13:30:19-04:00" level=error msg="User-selected graph driver \"overlay\" overwritten by graph driver \"vfs\" from database - delete libpod local files to resolve Hypothesis: integration tests, which run just before us, are leaving user config files in an unstable state. Workaround: delete all user cache and config and db before running system tests. This should be safe, and should be a NOP when running as root. Signed-off-by: Ed Santiago <santiago@redhat.com>
* | code cleanupbaude2019-07-08
|/ | | | | | clean up code identified as problematic by golands inspection Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #3437 from giuseppe/fix-nocgoOpenShift Merge Robot2019-07-03
|\ | | | | build: allow to build without cgo on RISC-V
| * cirrus: add test for compiling without cgoGiuseppe Scrivano2019-07-02
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | Bump gitvalidation epochMatthew Heon2019-07-02
|/ | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* Makefile: set GO111MODULE=offValentin Rothberg2019-06-27
| | | | | | | Turn of go modules to avoid breaking build environments to accidentally try pulling the dependencies instead of using the ./vendor directory. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Bump gitvalidation epochMatthew Heon2019-06-25
| | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* migrate to go-modulesValentin Rothberg2019-06-24
| | | | Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Makefile: add go-get functionValentin Rothberg2019-06-24
| | | | | | | Add a `go-get` function to the Makefile to wrap `go get -u` into a wrapper disabling go modules. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Support Reproducible Builds by removing build pathMorten Linderud2019-06-20
| | | | | | | | | | | | An issue for achieving reproducible builds is build artifacts where build paths are embedded. We remove them by passing the current working directory to -gcflags and -asmflags which prefix trims the paths. Note: Go 1.13 includes `-trimpath` https://reproducible-builds.org/docs/build-path/ Signed-off-by: Morten Linderud <morten@linderud.pw>
* Support SOURCE_DATE_EPOCHMorten Linderud2019-06-20
| | | | | | | | | | Build artifacts embeds the current date of the build into the artifact. If anyone want to reproduce the software at a later date there is no way to pass a recorded date or fake it in the build system at a later point. https://reproducible-builds.org/docs/source-date-epoch/ Signed-off-by: Morten Linderud <morten@linderud.pw>
* Bump gitvalidation epochMatthew Heon2019-06-18
| | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* run BATS tests in CirrusEd Santiago2019-06-17
| | | | | | | | | | | | | | | | | | | | | I'm running the BATS tests manually once in a while, and catching several problems each week that make it past the rest of CI. Since the BATS tests run at RPM gating time, we need to catch problems earlier. Try running the tests from Cirrus. Tests will be skipped on Ubuntu due to a too-ancient version of coreutils (8.28; the 'timeout -v' we use requires 8.29). Tests are run *after* integration tests, even though these take three minutes and would be nice to have fail quickly, because running before causes bizarre CI failures. Shrug. UPDATE: also fix run test, broken by #3311. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Improve DESTDIR/PREFIX/ETCDIR handlingLawrence Chan2019-06-14
| | | | | | | | | | | - PREFIX is now passed saved in the binary at build-time so that default paths match installation paths. - ETCDIR is also overridable in a similar way. - DESTDIR is now applied on top of PREFIX for install/uninstall steps. Previously, a DESTDIR=/foo PREFIX=/bar make would install into /bar, rather than /foo/bar. Signed-off-by: Lawrence Chan <element103@gmail.com>
* Bump gitvalidation epochMatthew Heon2019-06-14
| | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* Bump gitvalidation epochMatthew Heon2019-06-07
| | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* install.remote should be separate for install.binDaniel J Walsh2019-05-17
| | | | | | | For people who want to install podman remote or podman only we need to separate out the two install commands. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Bump gitvalidation epochMatthew Heon2019-05-16
| | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #3127 from mheon/fix_start_raceOpenShift Merge Robot2019-05-16
|\ | | | | Ensure that start() in StartAndAttach() is locked
| * Add debug mode to Ginkgo, collect debug logs in CirrusMatthew Heon2019-05-15
| | | | | | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Merge pull request #3089 from baude/splittestOpenShift Merge Robot2019-05-15
|\ \ | |/ |/| split remote tests from distro tests
| * split remote tests from distro testsbaude2019-05-13
| | | | | | | | | | | | | | | | We want the remote tests for our distributions to be tested in a different VM than the local tests. This allows for faster CI runs and easier debug as well as seperation of flakes. Signed-off-by: baude <bbaude@redhat.com>
* | Add `systemd` build tagSascha Grunert2019-05-13
|/ | | | | | | | | | | | If the systemd development files are not present on the system which builds podman, then `podman events` will error on runtime creation. Beside this, a warning will be printed when compiling podman. This commit mainly exists because projects which depend on libpod would not need the podman event support and therefore do not need to rely on the systemd headers. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* Bump gitvalidation epochMatthew Heon2019-05-06
| | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* cirrus lib.sh: refactor req_env_var()Ed Santiago2019-05-02
| | | | | | | | | | | | | | | Existing code was not working due to a bash gotcha ('exit' from a pipeline). It also had unnecessary duplication. New version is safer; also includes unit tests run under localunit. Existing invocations of req_env_var replaced via: $ [ edit setup_environment.sh, move one closing quote to its own line ] $ perl -ni -e 's/(?<=req_env_var )"(\S+)\s+\$\1"/$1/; if (/req_env_var "$/ .. /^\s*"/) { chomp; s/(?<=\S)\s.*//; if (/^\s*"/) { print "\n" } else { unless (/req_env_var/) { s/^\s+//; print " ";} print;} } else { print }' $(ack -l req_env_var) $ [ hand-massage an incorrect instance of '@' in lib.sh:ircmsg() ] Signed-off-by: Ed Santiago <santiago@redhat.com>
* enable podman-remote on windowsbaude2019-04-30
| | | | | | | build a podman-remote binary for windows that allows users to use the remote client on windows and interact with podman on linux system. Signed-off-by: baude <bbaude@redhat.com>
* build podman-remote with Dockerfile.Kunal Kushwaha2019-04-25
| | | | | | build podman-remote binaries for linux & darwin in container Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
* Update registrar unit tests to match them of cri-oSascha Grunert2019-04-04
| | | | | | | - Add the test framework abstraction - Update the unit tests to run with ginkgo Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* Bump gitvalidation epochMatthew Heon2019-03-30
| | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* zsh completionEd Santiago2019-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Weekend hack by someone who doesn't grok zsh completion but who finds it deeply offensive that most completion files have an unmaintainable duplication of options and arguments. The idea behind this one is to discover the command line using --help, with a few hardcoded helpers for discovering containers, images, pods, and figuring out which args take files/dirs as args. Working remarkably well. I am using this in my daily routine and wondering how I ever managed without it. It's not perfect -- a future version can perhaps show only stopped containers for podman rm, only running ones for podman stop -- but ROI seems low on that given my limited zsh completion skills. Sadly, I can't figure out how to write a regression test suite for this. It would be lovely to have a list if partial command lines and expected completions, because the history of this change is that (seemingly) minor tweaks in one place cause breakage in another. Does anyone know of such a framework? Still... working well enough to ship, IMO. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Add gating tasksbaude2019-03-13
| | | | | | | | | | | to protect against regressions, we need to add a few gating tasks: * build with varlink * build podman-remote * build podman-remote-darwin we already have a gating task for building without varlink Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #2598 from mheon/crio_umount_is_uselessOpenShift Merge Robot2019-03-09
|\ | | | | We don't use crio-umount.conf
| * We don't use crio-umount.confMatthew Heon2019-03-08
| | | | | | | | | | | | | | | | | | | | | | It also causes conflicts with CRI-O packages. Also, change the path on seccomp.json so it lives in /usr/share by default, with everything else. Fixes #2596 Signed-off-by: Matthew Heon <mheon@redhat.com>
* | ginkgo status improvementsbaude2019-03-08
|/ | | | | | | a series of improvements to our ginkgo test framework so we can get better ideas of whats going on when run in CI Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #2528 from cevich/more_timeOpenShift Merge Robot2019-03-05
|\ | | | | Globally increase test timeout to 90-minutes
| * Globally increase test timeout to 90-minutesChris Evich2019-03-04
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Bump gitvalidation epochMatthew Heon2019-03-04
|/ | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Bump gitvalidation epochMatthew Heon2019-03-01
| | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Bump gitvalidation epochMatthew Heon2019-02-26
| | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* build varlink without GOPATHbaude2019-02-13
| | | | | | | | | | 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>
* Makefile: Don't include quotes around GIT_COMMITLars Karlitski2019-02-12
| | | | | | These quotes were included in the varlink `GetVersion()` call. Signed-off-by: Lars Karlitski <lars@karlitski.net>
* Remove urfave/cli from libpodbaude2019-02-11
| | | | | | | 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>