Coder Social home page Coder Social logo

Make it working on Heroku about bigtuna HOT 11 CLOSED

appelier avatar appelier commented on August 20, 2024
Make it working on Heroku

from bigtuna.

Comments (11)

mattbeedle avatar mattbeedle commented on August 20, 2024

+1

from bigtuna.

knoopx avatar knoopx commented on August 20, 2024

did you tried it? it don't see why it should not work (apart from file-based compiled haml templates)

from bigtuna.

michalbugno avatar michalbugno commented on August 20, 2024

We are on it and it looks like it will work, couple of projects were built properly, we will update as soon as we figure everything out.

Please note, that delayed job workers are billable by heroku starting from 1 instance. This means that the delayed job backend won't be free; one solution would be to give the ability to change delayed job to threaded worker, like integrity did.

from bigtuna.

treybean avatar treybean commented on August 20, 2024

Any way you can outline how you did it? Is there a fork or branch with the necessary changes?

from bigtuna.

wuputah avatar wuputah commented on August 20, 2024

I am working on this as well - might end up duplicating some of the work you did, but oh well, I guess. I will be pushing up a branch on my fork when I have it working. Will update this as things progress.

from bigtuna.

wuputah avatar wuputah commented on August 20, 2024

I had a version of BigTuna on Heroku working with private keys which was quite tricky to do, but Heroku has changed their setup so now ssh(1) does not function, meaning private keys on Heroku is a no-go for now, at least until I can code up something to use Net::SSH in its place (or Heroku fixes ssh(1)). This means you must use https://username:[email protected]/user/project.git syntax for all checkouts on Heroku, assuming you are trying to do CI git private projects.

The steps to get BigTuna to work on Heroku are:

  • Change the Gemfile to use the pg gem instead of sqlite.
  • Change the build directory to tmp/builds/
  • Fix references to Rails.root in an expanded build path, since on Heroku, the path changes between execution of app and worker (use Dir.pwd instead, and delay any evaluation of this path to when we're inside the worker)
  • Fix any permission issues with trying to mkdir_p the full path to the build directory (only mkdir_p a relative path?)

There are normal environment variable issues in build steps, depending on what you are trying to CI. For instance, you may need to set RAILS_ENV, BUNDLE_GEMFILE, and BUNDLE_WITHOUT appropriately. Add env as a build step to check the environment that Heroku + BigTuna provides you so you can adjust accordingly.

I will still be working to provide better support for Heroku out of the box - the first of which is to finish my build path ticket - but figured I would outline the current state here for others who are interested.

from bigtuna.

avocade avatar avocade commented on August 20, 2024

+1 also for "give the ability to change delayed job to threaded worker, like integrity did"
EDIT: @wuputah, agreed. This didn't work at all on heroku.

from bigtuna.

wuputah avatar wuputah commented on August 20, 2024

Sorry, no intent to switch off a proper queue system. "Threaded workers" - which is really forked workers - sound great until they don't function properly. They also are not supported by Heroku - forking and using multiple children to do any simultaneously work is a violation of the Heroku TOS and will get your app killed.

from bigtuna.

wuputah avatar wuputah commented on August 20, 2024

I have a fork up at https://github.com/wegowise/bigtuna/commits/heroku , but it is definitely not ready to be merged in.

from bigtuna.

kerrizor avatar kerrizor commented on August 20, 2024

Thanks for the work on this, guys.

from bigtuna.

cldwalker avatar cldwalker commented on August 20, 2024

I've started on a cedar branch, https://github.com/wegowise/bigtuna/tree/cedar. Will pull request when ready

from bigtuna.

Related Issues (20)

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.