Commit Graph

194 Commits

Author SHA1 Message Date
Ettore Di Giacinto
d0b128000d Clean build dirs for each package after build 2019-11-17 15:59:52 +01:00
Ettore Di Giacinto
dea8ea7f9a Respect unpack also when compiling images #15 2019-11-17 15:59:48 +01:00
Ettore Di Giacinto
3499c0c580 Add test for compilation with version selection 2019-11-16 16:05:51 +01:00
Ettore Di Giacinto
32dea6f7fd Add Best() to solver for package selection based on version 2019-11-16 14:40:58 +01:00
Ettore Di Giacinto
602f5c68d5 Use emojis for icons 2019-11-16 14:16:59 +01:00
Ettore Di Giacinto
588d06430c Do not spin in the backend
Signed-off-by: Ettore Di Giacinto <mudler@gentoo.org>
2019-11-16 13:26:34 +01:00
Ettore Di Giacinto
3e850e9607 Adapt tests and fixup races in spinner
Signed-off-by: Ettore Di Giacinto <mudler@gentoo.org>
2019-11-16 13:26:33 +01:00
Ettore Di Giacinto
b2060c82e3 Make DB Switchable
Fixes races conditions and make the DB Switchable. Also prepare inside
the CompilationSpec the tree of the deps to be built, and parallelize
only the building jobs.

Closes #7

Signed-off-by: Ettore Di Giacinto <mudler@gentoo.org>
2019-11-16 13:26:33 +01:00
Ettore Di Giacinto
c95e0ed91d Add revdep calculation
Add CompilationSpecs type to handle slices of CompilationSpec, to
perform operation such as Unique() and Remove().

Add also dependencies and the spec associated to the Artifact, to track
how the artifact was generated.

Add revdeps compilation wrapper, and unit tests
2019-11-15 18:11:26 +01:00
Ettore Di Giacinto
321edd1676 Cleans container-diff cache on each run
It generates false positives if run with the same image paths
2019-11-14 22:50:39 +01:00
Ettore Di Giacinto
cd73d950cc Add fixture and test for includes and layered packages 2019-11-14 20:28:21 +01:00
Ettore Di Giacinto
ccdca66420 Small fixes and enhance output
Fixes a small issue with the Spinner which prevented to update the
spinner style. Also respect the temp folders of the output when
extracting the rootfs.
2019-11-14 20:22:49 +01:00
Ettore Di Giacinto
0eef18d75c Add 'includes' to CompileSpec
The includes field is an array of regexp used to indicate what include
inside the packag. It can be omitted to default behavior (all)
2019-11-14 17:43:47 +01:00
Ettore Di Giacinto
08944a22ac Add unicode icons 2019-11-14 00:14:43 +01:00
Ettore Di Giacinto
d5a8579454 Propagate also original Artifact name inside the copyjob 2019-11-13 17:06:55 +01:00
Ettore Di Giacinto
d752c0572b Add unpack field to specify a package used as layer
Closes #9
2019-11-13 09:43:54 +01:00
Ettore Di Giacinto
747d0ef9ac Do not fail in case we cannot remove cached images
Add a TODO, we should have a cli flag to treat warnings as fatal
2019-11-12 22:17:51 +01:00
Ettore Di Giacinto
2bbca653fd Add tree test and minor comment fixups 2019-11-12 17:31:50 +01:00
Ettore Di Giacinto
a2c32aaaa1 Propagate reverse dep calculation
Whenever we update the tree with new informations, all the sibilings
needs to be updated as well

Also switch to inmemory db for recipe - even if this should be a switch
2019-11-12 17:30:06 +01:00
Ettore Di Giacinto
a7a20358ef Search in world instead of db (or solver would mismatch) 2019-11-12 17:26:00 +01:00
Ettore Di Giacinto
8c36580722 Use image tags for cache instead of names 2019-11-12 17:24:24 +01:00
Ettore Di Giacinto
b64cf677c6 First order, then drop - or hash would mismatch 2019-11-12 17:24:00 +01:00
Ettore Di Giacinto
4c1c7451e7 Resolve deps before compiling 2019-11-12 08:48:07 +01:00
Ettore Di Giacinto
e7a328bca7 Fix compilation and hash image calculation. Tests fails on spec (installing d) 2019-11-12 00:13:03 +01:00
Ettore Di Giacinto
af49696aff WIP Compiler for images by solving the deptree 2019-11-11 19:19:13 +01:00
Ettore Di Giacinto
ebd4cfc318 Make Compile work in parallel
Also make the spinner thread-safe
2019-11-11 10:22:55 +01:00
Ettore Di Giacinto
f634493dc0 Add tests for package compilation with images 2019-11-10 10:49:24 +01:00
Ettore Di Giacinto
ea2a51ce66 Implement compilation with images
A compilespec with an image defined (and no seed) can now be compiled,
and an artifact delta is provided at the end of the process.
2019-11-10 10:48:07 +01:00
Ettore Di Giacinto
c51c6264d7 Backend nows must expose a way to unpack rootfs of images 2019-11-10 10:47:28 +01:00
Ettore Di Giacinto
fc93c9e3ea Generate artifact delta from layer diffs 2019-11-10 10:46:57 +01:00
Ettore Di Giacinto
a9bf9223c9 Rename PreBuildSteps in Prelude 2019-11-10 10:45:13 +01:00
Ettore Di Giacinto
45651a3bcc Define Artifact diffs layers
It also add in simpledocker a naive implementation using the container-diff binary, which is supposed to go away with a proper API implementation.
2019-11-09 13:58:15 +01:00
Ettore Di Giacinto
0672dd792e Add WIP Compiler steps for rootfs 2019-11-08 19:57:23 +01:00
Ettore Di Giacinto
4ea8f26878 Define a generic Artifact object for now 2019-11-08 19:57:04 +01:00
Ettore Di Giacinto
b2d305bb8d Add docker service to travis 2019-11-08 18:32:56 +01:00
Ettore Di Giacinto
29ccb3e168 Add SimpleDocker backend 2019-11-08 18:31:16 +01:00
Ettore Di Giacinto
639d4438e1 Adapt tests 2019-11-08 18:30:53 +01:00
Ettore Di Giacinto
3920f9a5ac Add accessors for LuetCompilationSpec 2019-11-08 18:30:19 +01:00
Ettore Di Giacinto
300e60984a CompilerBackend now consumes a CompilerOptions 2019-11-08 18:29:51 +01:00
Ettore Di Giacinto
0321973359 Add PreBuild steps
They are executed when building the "builder" image, those are not accounted to the diffs when producing the final artifact
2019-11-08 18:28:01 +01:00
Ettore Di Giacinto
287212db1c Add simple img backend 2019-11-05 17:37:21 +01:00
Ettore Di Giacinto
ff88ff67c2 Add Separate tree for build dependency
Reuse the Recipe and extend it to read a separate tree for build
dependencies.

Also add accessors to compilespec to produce dockerfile image format.
2019-11-05 17:36:22 +01:00
Ettore Di Giacinto
b62966ca35 Consume CompilerBackend in Compiler 2019-11-04 17:21:19 +01:00
Ettore Di Giacinto
add0021cfd Add compiler interfaces and build definition skeleton
Create compiler interface with switchable backends. For now it can resolve and
parse a `build.yaml` which is in the same folder as in `definition.yaml`

Add also tests to cover this and new fixtures
2019-11-04 17:21:19 +01:00