Skip to content

rvagg/node-ci-containers

Repository files navigation

node-ci-containers

A set of container images used in the Node.js CI system to run tests against changes as they are introduced.

Available on Docker Hub @ https://hub.docker.com/r/rvagg/node-ci-containers

What is this?

Each container sets up a minimal build environment required to test a particular build configuration. Some are generic, such as ubuntu1804, for use in general-purpose testing that doesn't require a special environment. Some are to test a specific distribution, such as the fedora* images. Some are specific to a distribution configuration, such as centos7-devtoolset7. And some contain specific software or configuration to test a particular build mode, such as ubuntu1804_zlib which tests Node.js compiled against a shared zlib.

Images

Adding more

New configurations should first attempt to use existing images where possible. Where a special environemnt is necessary a new image may be added. The container should:

  • Only contain the necessary software and configuration necessary to run a build & test cycle and exclude the execution scripting.
  • Should contain an iojs user and group, both 1000.
  • Should include /home/iojs/.ccache and /home/iojs/workspace volumes for mounting.
  • Should include a verified working configuration of ccache (unless compiling is not intended for the container). This will most likely be through the use of PATH modification to redirect gcc, g++, and friends to ccache symlinks.

Execution

These containers are executed by mapping the image property in the .ci.yml file in the root of the Node.js repository (https://github.com/nodejs/node/blob/master/.ci.yml). This property determines the image to pull down, and run.

The script in this repository, execute.sh, performs the majority of the logic of the decoding .ci.yml and determining what to run and how to run it. This script is executed within Jenkins using curl -sL https://raw.githubusercontent.com/rvagg/node-ci-containers/master/execute.sh | bash - on a Docker host. Therefore this script should be edited with care!

Running the Docker container itself is delegated to /usr/local/bin/docker-node-exec.sh on the Docker host. This is to allow for restrictive access to privileged resources, as this script is the only resource the executing user may call with sudo. This script is located in Node.js Build WG repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published