Age | Commit message (Collapse) | Author | Files | Lines |
|
Should not be used any more!
Change-Id: I38fd1ea34aaa12c5d7d060bca47d1866bc97d185
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
Previously the .ssh directory of the invoking user was bind mounted
into the build container. This behavior is now removed. The ssh keys
in the user's .ssh is however *copied* into the container if, and only
if, the RSYNC_CONNECT_PROG environment variable has been set as this
indicates the need to tunnel rsync traffic over (presumably) ssh. In
this case the keys may actually be needed.
In both cases the .ssh/config file will be updated with the
StrictHostKeyChecking=no
option to prevent failure due to the ssh confirmation dialogue.
Change-Id: Ic2ecc9d7a9abfa796bdfa6aaa8cde0dcb632d76e
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
(cherry picked from commit bae859e2a47befeb3c6a97988dc778daf66e37bd)
|
|
The build system is now able to work also behind a traditional web
proxy setup if the http_proxy, https_proxy and (if needed) no_proxy
environment variables has been set prior to invoking make.
This is a joint work by Gillian Dunne <gillian.dunne@intel.com> and
Stefan Berg <stefan.k.berg@ericsson.com>.
Verification so far has been with a mock setup, placing the build
machine behind a Squid proxy and blocking outgoing traffic not going
through the proxy by firewall rules. The following environment
variables was set in the host for these tests:
RSYNC_PROXY=10.0.0.1:8888
http_proxy=http://10.0.0.1:8888
https_proxy=http://10.0.0.1:8888
no_proxy=localhost,127.0.0.1,.consultron.com,.sock
*** IMPORTANT NOTE ABOUT THE HOST PROXY SETTINGS ***
The build system will make use the following proxy environment
variables:
http_proxy:
https_proxy
no_proxy
RSYNC_PROXY
RSYNC_CONNECT_PROG
During the build phase, a local Ubuntu package repository is fetched
from upstream in order to be added to the OPNFV Fuel ISO and for parts
of this process rsync is used.
This will require that either RSYNC_PROXY is set according to the
format "<proxy host>:<proxy port>" and that the proxy indicated indeed
allows rsync traffic *or* that RSYNC_CONNECT_PROG is set to use an
alternative transport. For a detailed explanation of these settings,
see the rsync manual page.
*** IMPORTANT NOTE ABOUT THE HOST DOCKER DAEMON SETTINGS ***
The Docker daemon on the host must be configured to use the http proxy
for it to be able to pull the base Ubuntu 14.04 image from the Docker
registry before invoking make! In Ubuntu this is done by adding a line
like:
export http_proxy="http://10.0.0.1:8888/"
to /etc/default/docker and restarting the Docker daemon.
Change-Id: Ieed2269af295d90a4b33d834f723889bdf9c7dc6
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
(cherry picked from commit 0635291a88dd006e15224169524a7fc761ad47ab)
|
|
In order to enable the caching of more build artifacts than the Fuel
iso during CI builds, the caching functionality and the CI build
frontend "build.sh" has been rewritten.
The build.sh script will now rely on the "make cache" functionality of
the top Makefile to make sure that the build is using cache handling.
The underlying cache logic is implemented in "cache.mk" for the top
makefile and those recursive levels that do not produce cachable
artifacts themselves in that they are only calling the SUBDIRS of
their lower level (like f_isoroot).
All "leaf" Makefiles will however need to implement three cache
targets in their top Makefile (for visibility):
clean-cache:
Clean all files relating to the handling of caches.
get-cache:
Attempt to fetch a cached artifact using a SHA1 key.
put-cache:
Store a built artifact into the cache.
They can just implement a simple "no-op" functionality for thes
targets if they do not have any use of the caching functionality.
If they are to use the caching functionality, they must make sure to
implement a logic that produces a SHA1 hash based on the source of the
data they are to cache - for upstream repos one suggestion is to use
the commit ID of the used upstream HEAD. For examples, see the top
Makefile that implements this logic for the Fuel ISO build, taking
into consideration the commit IDs of all the upstream repositories
used.
To improve tracability, the root directory of the ISO will contain the
file gitinfo.txt, which is meant to detail the upstream repo and
commit ID used for all upstream dependencies of a build. If you are
adding additional upstream dependencies, make sure to use the
repo_info.sh tool to add this data.
The cache tool cache.sh has no notion of the cache data it is storing
- from the tools perspective, cache data is just a binary blob piped
in or out of the tool.
This blob is stored by the cache tool at the cache location as
<SHA1>.blob, together with an associated meta file <SHA1>.meta.
The cache meta file currently holds just one line:
Expires: <epoch time>
This file is expected to be used to iterate through the cache objects
and retire those who's expiry date has passed. Currently objects will
always have an expiry date of two weeks into the future, but down the
road the "cache put" functionality may be amended with an optional
"age" argument that can set a different expiration time.
New tools in this commit:
cache.sh - the cache logic
repo_info.sh - the (optionally recursive) repo information logger
Change-Id: I8a40546c21febeecc9de6d82c0ceb6bc60b04205
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
|
|
VERIFIED
Description: Improved handling of docker clean-up
JIRA: FUEL-71
Change-Id: I565f77e227da2dcbaecd86582ab6890508726607
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|
|
563547b4a9f44090f32c0e17d040114854563760
Note: other installers and /common are removed
Change-Id: Ie5a2b0b7f3e7fa2eda191710c98456eeec17ed61
Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
|