GithubHelp home page GithubHelp logo

isabella232 / freightyard Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 3ofcoins/freightyard

0.0 0.0 0.0 100 KB

Package builder for a freight repository

License: BSD 3-Clause "New" or "Revised" License

freightyard's Introduction

freightyard

Package builder script for a freight repository.

Freight is a program that creates and maintains Debian apt-get repositories. This script works with Freight to build updated packages and add them to repository. It is intended for a continuous integration system to rebuild only the packages that haven't been yet built and pushed to the apt repository.

Requirements

  • Perl 5 interpreter (tested on 5.10.1)
  • Freight
  • Rake build tool for the packages
  • You probably also want to use GPG to sign your distribution

Usage

  1. Prepare config file for freight by running freight init. Configure the paths, GPG key, etc as you see fit. If you use the script in a CI setup, you probably don't want a password on your GPG keychain.

  2. Set up your packages repository as described below.

  3. Run freightyard freight.conf apt/distro [apt/distro [...]] to build packages that are not yet in repo and add them to the repository.

Package repository setup

Every package that you want to build should live in a separate subdirectory of your repository and be built using Rake (a Ruby build tool). Currently only Rake is supported. Tasks that build packages should be named as the package file and be properly described, so that the tasks show in rake -T output. When you go to the packages subdirectory, you should see something like this:

[packages/java]$ rake -T
 [...]
rake ia32-sun-java6-bin_6.32-1_amd64.deb  # Build ia32-sun-java6-bin_6.32-1_amd64.deb
rake sun-java6-bin_6.32-1_amd64.deb       # Build sun-java6-bin_6.32-1_amd64.deb
rake sun-java6-fonts_6.32-1_all.deb       # Build sun-java6-fonts_6.32-1_all.deb
rake sun-java6-javadb_6.32-1_all.deb      # Build sun-java6-javadb_6.32-1_all.deb
rake sun-java6-jdk_6.32-1_amd64.deb       # Build sun-java6-jdk_6.32-1_amd64.deb
rake sun-java6-jre_6.32-1_all.deb         # Build sun-java6-jre_6.32-1_all.deb
rake sun-java6-plugin_6.32-1_amd64.deb    # Build sun-java6-plugin_6.32-1_amd64.deb
rake sun-java6-source_6.32-1_all.deb      # Build sun-java6-source_6.32-1_all.deb
[packages/jetty]$ rake -T
 [...]
rake jetty_8.1.3.v20120416-local5_all.deb  # Build package.

There can be different tasks in the descriptions. Freightyard will look for */Rakefile in current directory, run rake -T in every subdirectory that contains Rakefile, collect all the tasks that end with .deb, and use these tasks' names as packages available for building.

This list will be compared with contents of the freight repository, and all the available packages that are not in the freight repository will be built and added there.

TODO

  • Make the script more configurable - not Rake-dependent.
  • Support for maintaining various packages

freightyard's People

Contributors

mpasternacki avatar

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.