Skip to content

Commit b28e859

Browse files
committed
Doc: update ci/README.md for new docker builds
1 parent 0fe9945 commit b28e859

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

ci/README.md

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
# CernVM-FS specific Continuous Integration Scrips
22
This directory contains build scripts for CernVM-FS and its related packages. They are targeted to be used for continuous integration systems like Jenkins (that is currently used at CERN). However, they shall be portable and therefore not contain any CI system specific logic. For testing purposes those scripts can also be run from the command line.
33

4-
## Build Script Naming Convention
5-
To simplify the integration with CI systems most of the scripts in this directory follow a naming and parameter convention: `${package_identifier}_${package_type}.sh ${source_location} ${build_location} $@`.
6-
7-
## Scripts
8-
* `build_cvmfs_???.sh <source location> <build location>`
9-
* builds the CernVM-FS main packages (cvmfs, cvmfs-server, cvmfs-unittests). Depending on the target platform there might be different packages or individual packages might be omitted.
10-
* `build_config_???.sh <source location> <build location> [<nightly number>]`
11-
* builds the cvmfs-config-default and cvmfs-config-none packages
12-
* `build_auto_setup_rpm.sh <source location> <build location>`
13-
* builds the cvmfs-auto-setup RPM to facilitate CernVM-FS installation under certain circumstances
14-
* `build_incremental_multi.sh <source location> [<number of cores to use>]`
15-
* performs an incremental build without producing any packages. This script is meant to be platform independent and should not install anything into system paths.
4+
## Build Script Conventions
5+
To simplify the integration with CI systems most of the scripts in this directory follow a naming and parameter convention: `${package_identifier}/${package_type}.sh ${source_location} ${build_location} $@`.
6+
I.e. scripts are grouped in sub directories according to the packages they build and are named after the package type they are building. Their first and second argument are always absolute paths to the CVMFS git repository's root and an empty build result directory. After that an arbitrary number of optional parameters can follow.
7+
8+
## Docker Integration
9+
To simplify the necessary build machine infrastructure we base our builds on [Docker](https://www.docker.com/). Blueprints for all important build machines are provided in the sub directory `docker`.
10+
11+
## Additional Helper Scripts
12+
* `build_on_docker.sh <source location> <build location> <docker image> <script invocation>`
13+
* lazily builds the specified docker container (name of the docker/<subdirectory>) and invokes the build script inside it. Note that you must not specify <source location> and <build location> for the script to be run!
14+
* `build_package.sh <source location> <build location> <package name>`
15+
* builds the specified package (cvmfs, cvmfs-auto-setup, cvmfs-config, cvmfs-release) for the currently running platform. Note that not all package types are implemented for all package names.
16+
17+
## Example Usage for a Docker-based Build
18+
19+
```bash
20+
# create a build destination
21+
mkdir /tmp/cvmfs_build
22+
23+
# invoke the build script (assuming $PWD = git repository root)
24+
ci/build_on_docker.sh $(pwd) /tmp/cvmfs_build el6 build_package.sh cvmfs
25+
```

0 commit comments

Comments
 (0)