The hook sequencing doesn't work as well for bdist_wheel as it does for
sdist because bdist_wheel creates a build destination before setup hooks
run, but the setup hooks get run the context of the source dir, so that
the content gets generated but not in the right location.
sdist does not do a build directory, so by running an sdist first,
we cause setup hooks to get run in the correct context and before the
bdist_wheel step gets run. This means when bdist_wheel gets run, the
results of any setup hooks will be appropriately in place.
Change-Id: I5ca72b9cebcb27d7ab7b44198a98f7a8287de0b3
In order to debug issues, knowing what version of a base docker image is
in use can be helpful. Grab it and print it out.
Change-Id: I741b56bf4f8f8d1edd7e40da415b26c2e3dd13d7
This causes job failures with psycopg2_binary being unable to locate
pg_config.
This reverts commit 1c04073e6c.
Change-Id: I781aa72f3fd5c1aad42d9ba740807bc34a8dcbc4
To help save some space in images, we can use apk --no-cache flag.
Change-Id: Ife43f43aa6493f0a85c03ec593ff040a7d06f8e7
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Pushes all images built with build-image. This requires a --prefix
option to be specified since that is the user (or organization) to
which we push and helps to identify the local images.
Change-Id: I13eee575c329deb58285f9cc913be298b43bb438
We incorrectly reference things in the code as "tags" when what we
really mean is "image". We are only using actual tagging to create
a new prefixed image name that references the original image.
This changes code references from "tag" to "image" in places it
makes sense. Also, we no longer use tagging to create the prefixed
image name, and instead only create the prefixed image and commit
over it, leaving the resulting local images looking much cleaner
(with no duplicates).
Change-Id: I6234a62d927cb9f35f8f4b731eee375f4c208870
By default an uncaught sh exception is nicely formated and printed. This
is great except that it also truncates stdout and stderr. If you rtfs
you discover that you can override this behavior by setting the
_truncate_exc flag on commands to False.
Do this so that we can get complete process output for debugging.
Change-Id: Ibae19ac891ad7978a5bd128626adaa35a1c354e6
When stuff goes wrong in the images we miss chowning the tempdir back to
the original uid so we get a double exception. But it in a finally.
If only we had deterministic destructors ...
Change-Id: Ide62c5bd6eee824f40005a7628b8dba65544f428
In order to build images and use a local mirror, add an option which
updates the built-in alpine mirror. It puts it back at the end because
someone might otherwise use the output as a base image and it would
point to a random location.
Change-Id: I32cd19f79f1d474b0c011e39d139a78e196ce563
If the build host has pypi mirror configured, we should use it inside of
the container builds. Bind-mount build-host pip config.
Change-Id: Ib1540dfe3c4172eeb8a70b29becd73a2828b3efb
We want good debug logging. But we had some things from having tried to
figure out why the wheels weren't building/caching. Remove those,
they're silly.
Change-Id: Ifb661a6474b01e461303248b891e45bbee32bfc5
Well, making an image and not tagging it is just lame, because then it's
just, well, a uuid. And nobody likes uuids.
Change-Id: If8cfd530499aa9574703ac2a95eb306bc10d9b6b
Ok. So the previous alpine patch didn't work QUITE as much as you might
want.
In fact, it didn't work even a little bit.
Update it to work.
But also, change it a little bit and allow for expressing per-image
additional dependencies in python extras. If there is an extra matching
the image name, it'll get installed into that image.
Change-Id: I9eda25829be6d2916bb131cb6bc8f0382ef44f1b
Alpine is smaller. Also, for our first user, Zuul, alpine already has
all the things needed from extra repos (yarn and bubblewrap) Switch to
alpine so we can keep things simple.
NOTE: This isn't going to work until we cut a new release of bindep with
the depends-on patch in it.
Depends-On: https://review.openstack.org/579056
Change-Id: I8c8a3b94b5aa562f54034825c3af871893b4bf89
Running 'pbrx' with no arguments is a thing folks may do. We shouldn't
throw exceptions at them in this case, but, instead, some help text.
Change-Id: Ibed0da165f062125cf298e2d9b3dce54c4b93420
We ran in to some issues with pre-existing bindep files in OpenStack
with the 'build' profile. Change to 'compile'.
Change-Id: I02e2b350944a67cad9f6ff5e02c6367cce96b942
Turns out that without jobs defined patches don't really do much of
anything when submitted. Add some jobs.
Also, since this is a new utility that is not in use yet, and the first
use of it is on a bionic node anyway, just support python3.6.
Change-Id: I46ab534768a35329a6b9325c43ebc048ebfb368c
All OpenStack pbr packages can be turned in to single-process docker
containers the same way. bindep files describe the distro-packages
needed. requirements.txt describe the requirements and setup.cfg lists
the programs that get installed.
Occasionally, like with zuul-executor from Zuul, there are depends that
don't quite fit the mold, so allow a final-stage Dockerfile override.
This uses python:slim as a base image and does not make that
configurable. That is because these are python programs, so making
containers for different base distros doesn't make any sense.