Commit Graph

837 Commits

Author SHA1 Message Date
Jean-Christophe Fillion-Robin
53c068c8a4 Merge pull request #100 from dockcross/manylinux-change-ownership-of-man-and-share-dirs
manylinux-common: Fix pip install change ownership of "man" and "share" dir
2017-01-18 17:50:14 -05:00
Jean-Christophe Fillion-Robin
66a33a7647
manylinux-common: Fix pip install change ownership of "man" and "share" dir
This commit will fix installation of packages like nose that would otherwise
fail to install with error like the following:

  Installing collected packages: nose
  Exception:
  Traceback (most recent call last):
  [...]
  Permission denied: '/opt/_internal/cpython-2.7.11-ucs2/man'
2017-01-18 15:02:18 -05:00
Matt McCormick
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
Jean-Christophe Fillion-Robin
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
Matt McCormick
c2f98fe1bd Merge pull request #93 from mogenson/add-bc-package
common: add bc package
2016-11-30 07:58:04 -05:00
Mike Mogenson
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Matt McCormick
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
1ca10b2f29 README: Fix typo
[ci skip]
2016-11-27 04:16:18 -05:00
Matt McCormick
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
Jean-Christophe Fillion-Robin
5e29d1e338
circleci-matrix: less verbose docker push and pull 2016-11-26 23:58:38 -05:00
Jean-Christophe Fillion-Robin
4e040de75d
circleci-matrix: Display "Waiting for node0 - done" message on a new line 2016-11-26 23:58:38 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
4ad3e1a94f
dockcross: Add support for per-project configuration 2016-11-26 21:47:11 -05:00
Matt McCormick
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
Jean-Christophe Fillion-Robin
dee44ef426
imagefiles: Reduce wget verbosity using --progress=bar:force 2016-11-26 19:59:07 -05:00
Jean-Christophe Fillion-Robin
451715b6ec Merge pull request #86 from dockcross/depend-on-base-latest
Depend on base latest
2016-11-26 18:53:19 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
68393166b9
circleci-matrix: Increase timeout associated with deployment step 2016-11-26 12:50:33 -05:00
Jean-Christophe Fillion-Robin
029b402646
circle-ci-matrix: Fix deployment 2016-11-26 12:15:50 -05:00
Matt McCormick
b4e2a02e0c Merge pull request #84 from jcfr/reenable-parallel-build
Reenable parallel build
2016-11-26 11:29:40 -05:00
Jean-Christophe Fillion-Robin
7fb4b89937
ci: Update circleci-matrix to display when each sub-step starts and finishes 2016-11-25 18:18:17 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
e3c3859b0f Merge pull request #83 from jcfr/improve-browser-asmjs
Improve browser asmjs
2016-11-25 18:07:44 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
8077008a10
common: Introduce "install-ninja.sh" 2016-11-25 15:51:42 -05:00
Jean-Christophe Fillion-Robin
191d773e01
makefile: Ensure imagefiles are available in build image context 2016-11-25 15:51:38 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Matt McCormick
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
Matt McCormick
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
b370ceb3f5 README: Fix "Docker for Windows" link
[ci skip]
2016-11-21 02:24:56 -05:00
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
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
Jean-Christophe Fillion-Robin
75a7b29fb8
common.docker: Delete both openssl-1.0.2j build directory and archive 2016-11-19 14:39:25 -05:00
Jean-Christophe Fillion-Robin
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
Matt McCormick
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