summaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAge
* 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>
* Migrate to cobra CLIbaude2019-02-08
| | | | | | | | 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>
* Merge pull request #2288 from vrothberg/vendor-docsOpenShift Merge Robot2019-02-07
|\ | | | | Vendor docs
| * make vendor: always check for latest vndrValentin Rothberg2019-02-07
| | | | | | | | | | | | | | | | | | | | | | | | @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>
* | Add varlink generate to the make documentationHervé Beraud2019-02-07
|/ | | | | | | Minor improvement who add helping comment to the varlink generate target. Signed-off-by: Hervé Beraud <hberaud@redhat.com>
* Merge pull request #2283 from 4383/improve-makefileOpenShift Merge Robot2019-02-06
|\ | | | | Generate make helping message dynamicaly.