by delongGao


Heroku Buildpack: alignment programs

Build alignment algorithm binaries on heroku so that we could run them from the main alignment app. Based on this repo: link.

Basics on Custom Heroku Buildpacks

  • Heroku documentation on buildpacks: link.
  • A detailed blog about how to use custom buildpacks: link.
    • Note: there is one outdated info in this post about setting $PATH environment variable.
      • Setting up $PATH from release script using config_vals is no longer supported.
      • Using profile.d scripts is the new recommended way: link


  • Currently supporting 3 main algorithms:
  • They all have pre-compiled binaries for major platforms, we download the ones for:
    • Mac-64: for local dev environment
    • linux-64: for server
  • Then we do some pre-processings to change the file names and compress files. TODO: add script here
  • Upload the processed tar.gz files to Amazon S3, under the bucket: sif-sprint/alignment_algorithms and make them publically available (NOTE: this is required, since custom buildpack need to have access to download them, also there is really no confidential data in them.)
  • During app building process, at the compile step, these binaries will be downloaded from S3, stored in the correct folder(vendor) with correct names. At the end of compilation, we append vendor folder to the $PATH environment variable.