Commit Graph

18 Commits

Author SHA1 Message Date
Pagan Gazzard
a3649fa6ec Switch to generating the BASE_IMAGE_VERSION in the makefile, so that the makefile targets can use an accurate version by default
Fixes #422

Change-type: minor
2017-06-05 16:03:50 -07:00
Pablo Carranza Velez
9540ed415b Make the base image hash more deterministic
We've been using tar directly on the base image folder, and this makes
the file ordering unpredictable between filesystems, so we use find and
sort so that the files are always tarred in the same order, producing the same
hash in different filesystems.

We also now set the mtime to the specific Unix timestamp 0, to avoid differences
due to timezones.

Also remove the dest folder before calculating the hash.

Change-Type: patch
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
2016-12-17 15:37:22 -03:00
Pablo Carranza Velez
9e327bf7a6 Build the base image together with the supervisor
This commit changes the automation scripts so that the base image
is built together with the rest of the supervisor. We use a hash of
the contents of the base-image folder as tag for the base image so
that unnecessary rebuilds are avoided.

The build scripts are also modified to always clean up the resulting base image
and the image used to build it. We use docker pull and push to enable caching.

Change-Type: patch
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
2016-12-16 16:25:49 -03:00
Pablo Carranza Velez
914dedc453 Clean up after build to avoid polluting the Jenkins server 2016-10-27 12:14:34 -03:00
Pablo Carranza Velez
5e5a281307 Remove unused Jenkins build step 2016-10-05 19:49:53 +00:00
Pablo Carranza Velez
5e91436661 Force tagging of intermediate cache images and don't fail builds for them 2016-10-05 19:29:03 +00:00
Pablo Carranza Velez
d2f2622660 Cache intermediate images in the build to allow faster builds 2016-10-04 18:54:06 -03:00
Petros Angelatos
0546ba51d9 invoke the linter using npm 2016-09-14 22:33:36 +00:00
Petros Angelatos
488ca41621 build: implement multi-Dockerfile build process
This build strategy lends itself to how Rockerfiles work. In the build
Dockerfile all the build utilities (e.g gcc, python) are installed and
run the build process to produce some build artifacts. There are two
build Dockerfiles, one for the nodejs part and one for the golang part.
The build artifacts of these are combined into the runtime Dockerfile.
For all this to work there is some minimal glue implemented in the
Makefile.

Part of this commit is a switch of the base image the runtime is based
on to the minimal OpenEmbedded one produced by #198

Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
2016-09-14 01:38:35 +00:00
Pagan Gazzard
8715534d84 Run the linting automatically as part of the jenkins build. 2016-07-19 14:37:46 -07:00
Trong Nghia Nguyen
7ff638585c Add alpine supervisor build info 2016-05-17 11:59:39 +07:00
Pablo Carranza Velez
6c8c8a86bd Deploy supervisor to the Resin registry too 2016-01-06 11:16:18 -03:00
Pablo Carranza Vélez
33d402c3c0 Default PubNub and Mixpanel keys are now passed at build time 2015-10-14 16:53:33 -03:00
Pablo Carranza Vélez
53668647c8 Integration test is now working.
* More work on the integration test
* Correctly get supervisor IP
* Use Fatal for test errors
* test-integration working separate from run-supervisor
* Use jenkins' JOB_NAME to identify and remove containers with their volumes
* Document testing procedure
* Document the assume-unchanged tip
* Use /mnt/root for data path
* Nicer secret assignment
2015-10-13 13:43:36 -03:00
Pablo Carranza Vélez
300067febe Correctly integrate Go unit tests with Jenkins 2015-10-13 13:43:36 -03:00
Pagan Gazzard
0703759782 Try to populate the docker cache before building. 2015-10-13 13:43:35 -03:00
Pagan Gazzard
e8b6889d46 Take the ARCH param from jenkins, so that the different archs can be separate projects (and parallelise builds) 2015-10-13 13:39:38 -03:00
James
6c6f7e2af5 Add Jenkins Build Script 2015-10-13 13:39:37 -03:00