.devzone

DevZone configuration files:

Files

backup.push

Every changegroup pushed to the devzone will be "backuped" to the location in this file.

Example:

ssh://hg@bitbucket.org/OpenTTD/opengfx/

Note: This needs write permission for the DevZone.
On Bitbucket.org, just give the user "OpenTTD" write access to the repo you created there.
If you have another server, you need to allow ssh with key, the public key of the DevZone.

Backup scheduler runs every 4 hours.

bundles-header.html

Note: this part is currently on hold, as we are on transfer from Apache to Nginx

This file will be copied to your project at bundles.openttdcoop.org and included as header.

Example: http://bundles.openttdcoop.org/opengfx/

TODO: some substitutions

Directories

build

  1. clone the repo
  2. tar the repo
  3. building the tar using the rpm spec
  4. copying *.zip *.log *.md5 *.rev sprites/*.nfo from chroot/usr/src/packages/BUILD/<repo>/
    to bundles.openttdcoop.org/<repo>/<releases|nightlies>/<rev>
  5. symlink <rev> to latest
  6. copying bundles-header.html (not working now)
  7. writing finger: http://bundles.openttdcoop.org/versions.txt (not working now)
    Usage: /home/openttd/bin/update-versions.sh <project> <version> <date> [<branch>]

no grf example: NML

enable

The only required file, it enables the project for compile scheduler, the content does tell the type for default values which can be overridden by the other files.
This file is located in REPO/.devzone/build/BUILD_TYPE/enable only

type
type requirements build steps executed
bash .devzone/build/BUILD_TYPE/enable ./make.sh
nfo .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
nml .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
nml-sub .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
rpm (& others) requires every file ./.devzone/build/jenkins_build.sh
*.spec

one rpm spec file
default (nfo): compiler/.default/grf.spec

files

Which files to copy from BUILD to the bundles

Substitutions:

%{BUILD} $RPMBUILDDIR/BUILD/$REPO (%{BUILD} get replaced by the build path in the chroot)
%{ARCH} $ARCH (i586)
%{VERSION} Versionstring
%{RPMBUILDDIR} $RPMBUILDDIR
Prefixes:
R; Required, if this file doesn't exist, the DevZone does announce fatal error, the remaining files will be published to <branch>/ERROR/<rev> (inclusive flag "5" - does also generate a md5sum file)
5; a md5sum with same name but extension .md5
E; Warning, the lines in this file will be counted and announced as (XX errors)
L; Files will be moved to subdirectory log like logfiles
# Comments, lines with starting # will be ignored

Example:

R;%{BUILD}/*.zip
%{BUILD}/*.md5
%{BUILD}/sprites/*.nfo
%{BUILD}/docs/readme.txt
%{BUILD}/*build.log
E;%{BUILD}/*build.err.log

The DevZone build log will be transfered beside those.

requires

Define other DevZone projects required to build
Format: <project>[;BRANCH (default:nightlies)]
Default: none

cleanup_releases

the minimum amount of releases to be published
default: 10 for nightlies, unlimited for releases, 1 for push
maximum: unlimited

unlimited = 0

cleanup_days

the minimum amount of days a release is published
default: 100 for nightlies

(if not set, cleanup_releases "counts", only)

File hirarchy

The files are either located in build/ directly or in the BRANCH subfolders (e.g. nightlies)

Priority:
  1. build/BRANCH/*
  2. build/*
  3. COMPILER/.default/*

Currently known and supported BRANCHes: nightlies, releases, push, testing
(please tell us, if you like to add a BRANCH to your project, it should easy be possible.)

hooks

repo_checks.ini

mq - Mercurial Patch Queue

mainrepo

The repository, where the mq is based on, the repository needs to be known at http://hg.openttdcoop.org.

(repo openttd is in sync with official trunk and branch 1.0)

Use the same branches for the mq as for the main repo, set guards for experimental stuff, which the CF shouldn't use for "tests".

If you like a build/test to a specific revision, use tag with the hash of the mainrepo. (like a release)
There is also a nightly run at 20:00 CEST (same rev as official trunk), where it tries to apply the mq and build.