Giter Site home page Giter Site logo

rethinkdb-package-builder's Introduction

RethinkDB Mass Package Builder

   This repo has tools for building RethinkDB on a crapload of
   platforms.  It uses Docker because that's a way to get operating
   system images and run stuff on them.

   Right now, you could run:

       # Mac
       ruby setup.rb

       # Linux
       sudo ruby setup.rb

   Sudo is only necessary if your docker installation needs it.

   In general we will (at some point) want to support kicking off a
   mass package build for a given rethinkdb git commit.  We also want
   to support kicking off an individual package build for a particular
   (rethinkdb git commit, platform) pair.

EXAMPLE USAGE:

    ./setup.rb --help

    # build packages, test installation, and copy packages for jammy
    ./setup.rb -c v2.4.3 --v243support --packages --test-pkgs --copy-pkgs --distro jammy

    # view rethinkdb_2.4.3~0jammy_amd64.deb
    ls artifacts/pkgs

BUILD REQUIREMENTS:

   You need Ruby and Docker.

DIRECTORY STRUCTURE:

   - rdbcheckout - clones rethinkdb and fetches the biggest external
     dependencies.  We have this here so we don't have to re-clone and
     fetch for every platform (a zillion times over).

     Keeps the checkout in /rdb

   - bionic, buster, strech, centos8, et al - dockerfiles for building
     on specific platforms

     Copies /rdb from rdbcheckout to /platform, then does its work.

NOTES:

   - The creator of this (Sam Hughes <[email protected]>) is a
     Docker n00b, so feel free to second-guess his decisions.

SEARCH TERMS:

   - "DISAPPEND": A TODO item for a build task that should be moved
     elsewhere.  But currently it isn't, to avoid re-fetching and
     re-building.

     In general, these Dockerfiles are developed in an append-only
     manner, because rebuilding images is really slow.  But if and
     when I have to touch the core file, I'll want to clean up that
     cruft.

rethinkdb-package-builder's People

Contributors

gabor-boros avatar srh avatar

Stargazers

 avatar

Watchers

 avatar  avatar

rethinkdb-package-builder's Issues

centos8 system setup is broken: Failed to download metadata for repo 'appstream'

Step 3/7 : RUN yum install -y openssl-devel libcurl-devel wget tar m4     git-core gcc-c++ which make python2 boost-devel     bzip2 patch clang     perl rubygems ruby-devel rpm-build
 ---> Running in 936adb675d6c
CentOS Linux 8 - AppStream                       36  B/s |  38  B     00:01    
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
The command '/bin/sh -c yum install -y openssl-devel libcurl-devel wget tar m4     git-core gcc-c++ which make python2 boost-devel     bzip2 patch clang     perl rubygems ruby-devel rpm-build' returned a non-zero code: 1

Have some way to specify ALLOW_WARNINGS=0 in builds

Right now, all builds with --builds use a build/Dockerfile. It might be handy to have some way to specify ALLOW_WARNINGS=0 when testing out a new platform (which passes -Werror to the compiler), so that we can use rethinkdb-package-builder to confirm the latest version of RethinkDB builds without warnings on any given new OS version.

Maybe a new option, --werror-builds, that uses a new werror_builds/Dockerfile, is the way to go.

Support for s390x

Some ubuntu docker images already have an s390x tag, but for those that have no s390x tags, the https://hub.docker.com/r/s390x/ubuntu contains docker images.

So: using the https://hub.docker.com/r/s390x/ubuntu images for s390x builds over the regular ubuntu images would allow having s390x build.


Sorry, too much s390x. Also, it is not a priority thing either. All build steps are the same, even the packages, only the base image should be "replaced" in the Dockerfiles.

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.