Customizing your package build

When you push a Git repository, by default, Gemfury will auto-configure and build a package based on the structure of the incoming repository. However, you may want to go a step further and manually configure the build to suit any of the following needs:

  • Multiple packages per repository
  • Incorrect or failed auto-configuration
  • Use a working directory other than root

Auto-detect by default

In default mode, our Git builder will iterate through all available buildpacks in the root directory of the repository, and choose the first one that passes detection. The chosen buildpack will be used to build and push the package to your account.

Simple configuration

You can configure your build by placing a .fury.yml file in the root directory of your repository. A simple configuration allows to specify multiple buildpacks via a YAML array of buildpack IDs. For example, the following will create both a npm package and a bower package from one repository:

# Simple .fury.yml example
- bower
- npm

Full configuration

To further customize your build, you can write your .fury.yml as an array of configuration hashes – one for each build. The following variables are supported in those per-build configurations:

dirWorking directory/
packBuildpack IDauto

For example, you can use the following configuration to build all RubyGems in the Ruby on Rails repository:

# Example .fury.yml for Ruby on Rails repo
- dir: actionmailer
  pack: ruby
- dir: actionpack
  pack: ruby
- dir: actionview
  pack: ruby
- dir: activejob
  pack: ruby
- dir: activemodel
  pack: ruby
- dir: activerecord
  pack: ruby
- dir: activesupport
  pack: ruby
- dir: railties
  pack: ruby
- dir: /
  pack: ruby

Supported buildpacks

The following buildpacks can be specified via manual configuration:

Pack IDOutputDefault
autoFirst auto-detected type
npmnpm package
phpPHP Composer package
pythonPython source build
bowerBower package