Commit Graph

885 Commits

Author SHA1 Message Date
0eaea01158 Merge pull request #95 from dockcross/dockcross-check-for-proc-version
dockcross: Check if "/proc/version" exists and fix error on MacOSX. Fixes #94
2016-12-05 10:16:41 -08:00
2511a92d17 dockcross: Check if "/proc/version" exists and fix error on MacOSX. Fixes #94
This commit will avoid the following error from being reported
on MacOSX:

```
docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7
chmod +x ./dockcross-linux-armv7
./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm'
grep: /proc/version: No such file or directory
grep: /proc/version: No such file or directory
```

Reported-by: Chris Warth <cswarth@gmail.com>
2016-12-05 01:32:14 -05:00
c2f98fe1bd Merge pull request #93 from mogenson/add-bc-package
common: add bc package
2016-11-30 07:58:04 -05:00
b398b2d3ec common: add bc package
The 'bc' utility is required to build the 4.x Linux kernel series.
Install the package when creating a debian based image.
2016-11-29 15:37:23 -05:00
edaf993b4d Merge pull request #92 from jcfr/capture-btrfs-error-rebased
Makefile: Fix tests removing double quote from RM variable
2016-11-29 02:49:59 -05:00
5117ab6493 Makefile: Fix tests removing double quote from RM variable
This commit fixes a regression introduced in 6823cb1 (Makefile: Do not
specify "--rm" docker run argument when executing on CircleCI)
2016-11-28 23:47:26 -05:00
2b620ad718 Merge pull request #91 from jcfr/capture-btrfs-error-rebased
dockcross: Ensure deletion error are ignored
2016-11-28 23:16:37 -05:00
6823cb1bd9 Makefile: Do not specify "--rm" docker run argument when executing on CircleCI
This will avoid the "Driver btrfs failed to remove" error message when
executing the command on CircleCI.
See https://circleci.com/docs/docker-btrfs-error/
2016-11-28 20:01:39 -05:00
c0fe1e2313 dockcross: Ensure deletion error are ignored
This commit follows up on 2e71db2 (dockcross: Ignore deletion error
when running in unprivileged LXC container) by hiding the message
only when (a) the command output matches the expected error message
and (b) is executed on CircleCI.

Doing so will avoid adding "noise" to log of service like CircleCI
that are effectively running docker in unprivileged LXC container.

See #50
2016-11-28 19:50:42 -05:00
1ca10b2f29 README: Fix typo
[ci skip]
2016-11-27 04:16:18 -05:00
0926d89d99 Merge pull request #90 from jcfr/less-verbose-docker-pull-and-push
circleci-matrix: less verbose docker push and pull
2016-11-27 00:11:59 -05:00
5e29d1e338 circleci-matrix: less verbose docker push and pull 2016-11-26 23:58:38 -05:00
4e040de75d circleci-matrix: Display "Waiting for node0 - done" message on a new line 2016-11-26 23:58:38 -05:00
824f0fb5eb Merge pull request #89 from jcfr/support-dockcross-init-hook
dockcross: Add support for per-project configuration
2016-11-26 23:02:41 -05:00
4ad3e1a94f dockcross: Add support for per-project configuration 2016-11-26 21:47:11 -05:00
b8317c88a0 Merge pull request #88 from jcfr/tweak-download-progress
imagefiles: Reduce wget verbosity using --progress=bar:force
2016-11-26 21:45:58 -05:00
dee44ef426 imagefiles: Reduce wget verbosity using --progress=bar:force 2016-11-26 19:59:07 -05:00
451715b6ec Merge pull request #86 from dockcross/depend-on-base-latest
Depend on base latest
2016-11-26 18:53:19 -05:00
286e6b5c95 Dockerfile: Explicitly depend on "dockcross/base:latest"
As recommended in by CircleCI, explicitly specify the "latest"
tag. This will be important when we will start versioning our images.

Copied from CircleCI documentation [1]:

"Make sure you tag the image you use in the FROM command in your
Dockerfile, even if it is the default “latest” tag. Otherwise, Docker
will pull down all tags for the image you specify. This will create
significant performance problems because the save/load strategy described
above only caches the image layers (and thus tags) that you specify in
the docker save command, so other tags will be re-pulled on every build
if a tag is not specified in the FROM command."

[1] https://circleci.com/docs/docker/#caching-docker-layers
2016-11-26 18:25:08 -05:00
1560f4c3b6 makefile/browser-asmjs: Remove now unneeded dependency to "base"
Following 09868d5 (browser-asmjs: Update to depend on existing image from
"trzeci/emscripten"), browser-asmjs does NOT depend anymore on base image.
2016-11-26 18:20:35 -05:00
abc164e7c6 circleci-matrix: Push images as part of the test step
To workaround, CircleCI limitation [1]:

"Please note that since we do not support parallel deployment, specifying
‘parallel:true’ in the deployment phase will cause an error."

This commit moves the deployment step as the last action of the test
step. Doing so will ensure, every container will take care of pushing
images it was responsible to build.

[1] https://circleci.com/docs/parallel-manual-setup/#simple-example
2016-11-26 17:54:17 -05:00
68393166b9 circleci-matrix: Increase timeout associated with deployment step 2016-11-26 12:50:33 -05:00
029b402646 circle-ci-matrix: Fix deployment 2016-11-26 12:15:50 -05:00
b4e2a02e0c Merge pull request #84 from jcfr/reenable-parallel-build
Reenable parallel build
2016-11-26 11:29:40 -05:00
7fb4b89937 ci: Update circleci-matrix to display when each sub-step starts and finishes 2016-11-25 18:18:17 -05:00
6018cc6241 ci: Split building and waiting for base image into its own command
This should help reduce the overall time associated with the test step
and avoid reaching the 120mins cutoff time for a given command.
2016-11-25 18:12:00 -05:00
1e4de86ca6 ci: Optimize parallel build
* style: Rename TASK to STEP
* do not pull base image after it was copied from node0 and loaded.
  It caused the current Dockerfile to be out-of-sync with the current image.
* do not pull images after loading the downloaded and up-to-date
  base.tar. It was overwriting the base.tar downloaded and loaded.
* save debian:jessie into base.tar
* use "time" command to help identify long running operation
* rename marker file from "BASE_READY" to "BASE_AVAILABLE"
* build base image only if needed.
2016-11-25 18:12:00 -05:00
b5c2221288 Revert "Merge pull request #80 from jcfr/revert-circleci-parallel"
This reverts commit 2f31a84e65, reversing
changes made to e120e36824.
2016-11-25 18:11:21 -05:00
e3c3859b0f Merge pull request #83 from jcfr/improve-browser-asmjs
Improve browser asmjs
2016-11-25 18:07:44 -05:00
09868d5289 browser-asmjs: Update to depend on existing image from "trzeci/emscripten"
This commit updates the "browser-asmjs" images to avoid systematic
rebuild of emscripten sdk. Instead, it introduces dependency on the
image maintained by @trzeci

Note also:

* emscripten sdk updated from 1.36.7 to 1.36.14

* symlinking of "/bin/bash" as "/bin/sh" is reverted. This ensures other
  images including file like "common.debian" and relying on standard "sh"
  behavior will work as expected.

* workaround associated with CMakeForceCompiler has been removed from
  Dockerfile. Emscripten as been fixed.
  See https://github.com/kripken/emscripten/pull/4477

* we will revisit once official images are available.
  See https://github.com/kripken/emscripten/issues/4682
2016-11-25 15:51:42 -05:00
46cef1a33a common: Introduce "common.debian"
This will facilitate the configuration of other images based on debian
but *NOT* depending on the dockcross/base image.
2016-11-25 15:51:42 -05:00
8077008a10 common: Introduce "install-ninja.sh" 2016-11-25 15:51:42 -05:00
191d773e01 makefile: Ensure imagefiles are available in build image context 2016-11-25 15:51:38 -05:00
593d6a5c07 Merge pull request #81 from jcfr/avoid-rebuild-of-base
base: Optimize image build adding only image and vcs_url metatdata
2016-11-24 18:17:41 -05:00
a68f2b6aa4 base: Optimize image build adding only image and vcs_url metatdata
To avoid dependent images to systematically rebuild, this commit
adds only "static" metatdata to the base image
2016-11-24 13:48:58 -05:00
2f31a84e65 Merge pull request #80 from jcfr/revert-circleci-parallel
Revert "Merge pull request #75 from jcfr/circleci-parallel-build"
2016-11-24 13:46:37 -05:00
fd9f2719e3 Revert "Merge pull request #75 from jcfr/circleci-parallel-build"
Waiting we address the timeout of command after 120min when using
parallel containers, this reverts commit e120e36824, reversing
changes made to 6a4826a8df.

Issue has been reported to CircleCI support as
https://circleci.zendesk.com/hc/en-us/requests/13273
2016-11-23 22:02:35 -05:00
e120e36824 Merge pull request #75 from jcfr/circleci-parallel-build
ci: Enable parallel build using circleci-matrix
2016-11-21 11:23:40 -05:00
6a4826a8df Merge pull request #77 from jcfr/simplify-and-improve-openssl-and-cmake-install
common.docker: Improve OpenSSL and CMake install introducing helper scripts
2016-11-21 11:20:00 -05:00
0552c37fea common.docker: Improve OpenSSL and CMake install introducing helper scripts
To accommodate the requirements associated with x86 and x64 images, the
command building OpenSSL and CMake became overly complex and hard to
maintain.

This commit has multiple purposes:

(1) simplify common.docker

(2) fix the building of 64-bit shared libraries against the static openssl
libraries by passing the -fPIC flag.

(3) ensure [many]linux-x86 and [many]linux-x64 images have an up-to-date
OpenSSL install. Openssl static libraries are installed in /usr

(4) simplify and speedup CMake build avoiding the second build with
explicit -DCMAKE_USE_OPENSSL:BOOL=ON. Indeed, configuring CMake on Linux
already looks for OpenSSL.

(5) speedup download of CMake source directly downloading the archive
corresponding to the revision.

(6) test CMake by:
  - running CMake.FileDownload test
  - trying to download a file served over https
2016-11-21 06:08:30 -05:00
b370ceb3f5 README: Fix "Docker for Windows" link
[ci skip]
2016-11-21 02:24:56 -05:00
70de0f9856 Merge pull request #74 from jcfr/base-image-fix-install-openssl
base: Fix building of OpenSSL. See #73
2016-11-20 14:10:32 -05:00
9639405d67 Merge pull request #76 from jcfr/linux-toolchain-fix-asm-compiler
[many]linux-(x86|x64)/: toolchain: Fix ASM compiler
2016-11-20 03:01:13 -05:00
ed7872edee [many]linux-(x86|x64)/: toolchain: Fix ASM compiler
Similarly to the linux-x86 toolchain, gcc is used to compile assembler
file.
2016-11-19 22:30:33 -05:00
cfd1921127 ci: Enable parallel build using circleci-matrix
The base image is built on the container 0. In the mean time, the other
containers wait for the base image to be ready.
2016-11-19 18:03:16 -05:00
75a7b29fb8 common.docker: Delete both openssl-1.0.2j build directory and archive 2016-11-19 14:39:25 -05:00
30a73bcd24 base: Fix building of OpenSSL. See #73
This commit fixes the following error reported when building the base
image.

sh: 1: [: =: unexpected operator
sh: 1: [: =: unexpected operator

It turns out that (1) DEFAULT_DOCKCROSS_IMAGE is not set when building the
base image and (2) latest openssl will not be available in linux-x64 and
linux-x86 images.
2016-11-19 14:32:20 -05:00
0bc5941bc8 Merge pull request #72 from jcfr/install-openssl-in-linux-based-images
common.docker: Ensure openssl-1.0.2j is available in manylinux and linux images
2016-11-18 20:09:00 -05:00
4bb8f97ffc common.docker: Ensure openssl-1.0.2j is available in manylinux and linux images
If images are any of manylinux-x86, manylinux-x64, linux-x86 or linux-x64,
OpenSSL libraries are installed in /usr .
2016-11-18 15:30:03 -05:00
2e9a5f7ed7 Merge pull request #71 from chadawagner/patch-1
quote HOST_PWD in docker cmd to allow spaces
2016-11-18 15:24:31 -05:00