Giter Club home page Giter Club logo

aurora-packaging's Introduction

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.22.0 debs for Ubuntu Xenial.

     ./build-artifact.sh builder/deb/ubuntu-xenial \
       ../apache-aurora-0.22.0.tar.gz \
       0.22.0
    

When this completes, debs will be placed in artifacts/aurora-ubuntu-xenial/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://gitbox.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:

N.B.: the release-candidate script requires bash 4.x or higher.

./build-support/release/release-candidate
Signing artifacts for centos-7...
Created archive for centos-7 artifacts at aurora-packaging/artifacts/aurora-centos-7/dist/rpmbuild/RPMS/upload.tar.
Signing artifacts for debian-jessie...
Created archive for debian-jessie artifacts at aurora-packaging/artifacts/aurora-debian-jessie/upload.tar.
Signing artifacts for ubuntu-xenial...
Created archive for ubuntu-xenial artifacts at aurora-packaging/artifacts/aurora-ubuntu-xenial/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 artifacts. Bintray theoretically supports exploding tarballs on upload, but currently this functionality does not work (it fails to detect tarballs as explodable artifacts or, if it does, it tries to sign the artifacts, but fails due to a signature already being present, even when signing is disabled at the repo level).

This is all to say, it's easier to just un-tar the various upload.tar files and upload their contents directly. This can be accomplished by dragging and dropping all files into the upload UI for the version you created.

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.

aurora-packaging's People

Contributors

ajorgensen avatar benley avatar jcohen avatar jfarrell avatar jsirois avatar kasisnu avatar keis avatar kevints avatar kthakar avatar mhrabovcin avatar mkhutornenko avatar ndonatucci avatar pierrecdn avatar rdelval avatar ridv avatar shanmugh avatar shirchen avatar ssalevan avatar stephanerb avatar wfarner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aurora-packaging's Issues

Building 0.22 for centos-7

First I got into this error

Your system's preferred encoding is `ANSI_X3.4-1968`, but Pants requires `UTF-8`.
Specifically, Python's `locale.getpreferredencoding()` must resolve to `UTF-8`.

Then I added these two vars (and PANTS_PRINT_EXCEPTION_STACKTRACE for debugging pants error) to builder/rpm/centos-7/Dockerfile

 FROM centos:7

+ENV LC_ALL en_US.UTF-8
+ENV LANG en_US.UTF-8
+ENV PANTS_PRINT_EXCEPTION_STACKTRACE true
+
 RUN yum update -y
 RUN yum install -y \
     make \

I'm now getting error:

Exception caught: (exceptions.TypeError)
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/bin/pants", line 10, in <module>
    sys.exit(main())
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/pants_loader.py", line 87, in main
    PantsLoader.run()
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/pants_loader.py", line 83, in run
    cls.load_and_execute(entrypoint)
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/pants_loader.py", line 76, in load_and_execute
    entrypoint_main()
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/pants_exe.py", line 39, in main
    PantsRunner(exiter, start_time=start_time).run()
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/pants_runner.py", line 59, in run
    options_bootstrapper=options_bootstrapper
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/local_pants_runner.py", line 90, in create
    options_bootstrapper
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/bin/local_pants_runner.py", line 39, in parse_options
    options = OptionsInitializer.create(options_bootstrapper, build_config)
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/init/options_initializer.py", line 127, in create
    options = cls._construct_options(options_bootstrapper, build_configuration)
  File "/root/.cache/pants/setup/bootstrap-Linux-x86_64/1.15.0/lib/python2.7/site-packages/pants/init/options_initializer.py", line 90, in _construct_options
    build_configuration.optionables() |

Exception message: unsupported operand type(s) for |: 'set' and 'OrderedSet'

Wondering if you guys have seen this and have a fix. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.