Build Process

From BCCD 3.0

Jump to: navigation, search

Contents

Introduction

This document describes the build process for BCCD. The legacy process describes the old build_livecd.pl script; the improved process will describe the replacement for it.

Legacy process

The legacy process is driven by the bin/build_livecd.pl script in SVN. This script turns 8 years old on April 14, 2015 and, while functional, represents a much more rudimentary time for BCCD, both in terms of the distribution support and the team's (mainly Skylar's) software development knowledge.

The purpose of this section will be to document this legacy process comprehensively, and take inventory of its deficiencies so as to create the improved process.

Relationship with Bccd.pm

build_livecd.pl makes heavy use of Bccd.pm. Bccd.pm itself has a number of deficiencies itself:

Legacy process details

The legacy process has the following stages:

Legacy process deficiencies

Improved process

See also: the talk page

Build stages

The improved process is a Make-/Jenkins-driven pipeline. The Makefile lives in the root of the SVN branch/tag. The Jenkins pipeline consists of the following stages:

debootstrap

Artifact 
target/debootstrap.tar.bz2
Make target 
target/debootstrap.tar.bz2
Triggers 
debootstrap-bccd

Produces the artifact by running the bin/prepare_debootstrap script.

fpm

Artifact 
target/bccd.noarch.deb, build/etc/bccd-revision
Make target 
target/bccd.noarch.deb
Triggers 
debootstrap-bccd

Generates bccd.noarch.deb using rpm and the checked-out files in the src directory.

debootstrap-bccd

Dependencies 
target/debootstrap.tar.bz2, build/etc/bccd-revision
Artifact 
target/debootstrap-bccd.tar.bz2
Make target 
target/debootstrap-bccd.tar.bz2
Triggers 
iso

Unpacks target/debootstrap.tar.bz2, runs bin/bccd_install_pkgs within it, and then creates target/debootstrap-bccd.tar.bz2

NOTE: Both the debootstrap and fpm will trigger this target. debootstrap only has to be run when updating the OS, while fpm needs to be run when the BCCD package is updated.

iso

Dependencies 
target/bccd.noarch.deb, build/etc/bccd-revision, target/debootstrap-bccd.tar.bz2
Make target 
target/bccd.amd64.iso

Unpacks debootstra-bccd.tar.bz2, installs target/bccd.noarch.deb within, then produces a filesystem.squashfs artifact, and finally an ISO image containing the squashfs.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox