Skip to content

API + rake tasks to build "nightly" or on-demand stuff

License

Notifications You must be signed in to change notification settings

travis-ci/travis-nightly-builder

Repository files navigation

Build Status

travis-nightly-builder

Rake tasks to build compatible language runtimes via API.

The Rake task build tasks 3 arguments (shown below) and invokes appropriate API calls to initiate builds.

build Rake task arguments

  1. Repository name
  2. Branch to build
  3. Space-delimited argument list to override the builds
  4. String to filter jobs. The string should be a semicolon-delimited list of equal-delimited key-values pairs. Those jobs in jobs.include that match all of the filters will be chosen and put on the payload; e.g., 'dist=bionic'

Compatible repositories

Builds Ruby

$ rake build['travis-rubies','build','RUBY=2.1.9']

Builds PHP

$ rake build['php-src-builder','default','VERSION=7.0.6 ALIAS=7.0']

Builds Python

$ rake build['cpython-builder','default','VERSION=3.5.0b3']

The task needs VERSION=… set, or else it will fail.

Builds OTP Release

$ rake build['travis-erlang-builder','master','VERSION=19.0']

Builds Perl

$ bundle exec rake build['perl-builder','master',"VERSION=5.24.0 ALIAS=5.24"]

For Perl with extra configuration flags, do:

$ bundle exec rake build['perl-builder','master',"VERSION=perl-5.24.0 NAME=5.24.0-shrplib ARGS='-Duseshrplib -Duseithreads'"]

Runs tests for APT package whitelist requests

Web App

This repository also includes a Sinatra app which serves two purposes:

  1. List known archives for given criteria:

    GET /builds/:lang/:os/:release/:arch
    

    The list is stored as JSON in a Redis instance and refreshed if the local data are older than 2 hours. Each of the trailing parts can be omitted, in which case all archives matching the given criteria are shown.

    1. This endpoint normally serves HTML content, and in this case a Travis CI account is required.
    2. You may also request the list as JSON or YAML with the Accept header; e.g.,
      curl -H "Accept: application/json" https://language-archives.travis-ci.com/builds/erlang
      
      No Travis CI account is required in this case.
  2. Request builds with given criteria:

    POST /build
    

    with body containing the following parameters:

    • repo:
    • branch:
    • env:
    • os:
    • dist:
    • arch:
    • version:

    This endpoint is valid for Travis CI administrators only.

About

API + rake tasks to build "nightly" or on-demand stuff

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages