Use a fixed Debian mirror rather than relying on httpredir

This is another attempt at a stable nightly package build. The currently most common error is:

```
E: Failed to fetch http://httpredir.debian.org/debian/pool/main/p/patch/patch_2.7.5-1_amd64.deb  Error reading from server. Remote end closed connection [IP: 5.153.231.35 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
The command '/bin/sh -c apt-get update && apt-get -y install   bison   debhelper   devscripts   dpkg-dev   curl   git   libapr1-dev   libcurl4-openssl-dev   libkrb5-dev   libsvn-dev   python-all-dev   software-properties-common   thrift-compiler' returned a non-zero code: 100
```

Reviewed at https://reviews.apache.org/r/51301/
1 file changed
tree: e658ba3e00fd4d63788586244d6de34bcf3a69e2
  1. build-support/
  2. builder/
  3. docs/
  4. specs/
  5. test/
  6. .gitignore
  7. .reviewboardrc
  8. build-artifact.sh
  9. rbt
  10. README.md
README.md

Packaging for Apache Aurora

This repository maintains configuration and tooling for building binary distributions of Apache Aurora.

Building a binary

Binaries are built within Docker containers that provide the appropriate build environment for the target platform. You will need to have a working Docker installation before proceeding.

  1. Fetch a source distribution, such as an official one. Alternatively, you can also build from an arbitrary git commit by instead preparing sources from the Aurora source repository:

     git archive --prefix=apache-aurora-$(cat .auroraversion)/ -o snapshot.tar.gz HEAD
    
  2. Run the builder script, providing the distribution platform and the source distribution archive you downloaded in (1). The example below will build Aurora 0.9.0 debs for Ubuntu Trusty.

     ./build-artifact.sh builder/deb/ubuntu-trusty \
       ../apache-aurora-0.9.0.tar.gz \
       0.9.0
    

When this completes, debs will be placed in artifacts/aurora-ubuntu-trusty/dist/.

Creating a release candidate

Release candidates are hashed and signed binaries that are uploaded to bintray for easy access and testing by voters. You will need to have a bintray account and a generic repo created for the purpose of uploading the release candidate binaries in order to proceed.

Cut a branch and build the binaries

The example below is for the 0.12.0 release where upstream is https://git-wip-us.apache.org/repos/asf/aurora-packaging:

git checkout -b 0.12.x upstream/master

Now run the Building a binary procedure detailed above.

Hash, sign and upload the binaries

Run the following which will create a tarball for each distribution platform that can be uploaded to bintray:

./build-support/release/release-candidate
Signing artifacts for centos-7...
Created archive for centos-7 artifacts at /home/jsirois/dev/aurora/jsirois-aurora-packaging/artifacts/aurora-centos-7/dist/rpmbuild/RPMS/upload.tar.
Signing artifacts for debian-jessie...
Created archive for debian-jessie artifacts at /home/jsirois/dev/aurora/jsirois-aurora-packaging/artifacts/aurora-debian-jessie/upload.tar.
Signing artifacts for ubuntu-trusty...
Created archive for ubuntu-trusty artifacts at /home/jsirois/dev/aurora/jsirois-aurora-packaging/artifacts/aurora-ubuntu-trusty/upload.tar.
All artifacts prepared for upload to bintray.

In the bintray UI, create a new version in your release-candidate repo, for example ‘0.12.0’. Then, in the version UI you can upload the tarballs, ensuring you select ‘Explode this archive’.

bintray upload

Finally, ‘publish’ the results.

bintray publish

Adding a new distribution platform

There are only two requirements for a ‘builder’ to satisfy:

  • a Dockerfile to provide the repeatable build environment
  • a build.sh script that creates artifacts

Please see the makeup of other builders for examples.