Skip to content

More customizations of the *build process* needed #38

Open
@hubertlepicki

Description

I have stumbled upon two issues when trying to deploy our app to GAE using this runtime. Both could be solved by adding an additional build hook where I can paste in my code. You already provide similar hook that we need, but it's executed too late, i.e.:

runtime_config:
  build:
    - mix phx.digest
    - mix do.something.else

As described: https://github.com/GoogleCloudPlatform/elixir-runtime#customizing-application-builds

This is useful if you want to tweak the build, but it is not useful for us because at this stage Elixir and Erlang and app deps are already installed.

We probably would need two hooks in fact that are executed before that.

First hook would be executed before we run asdf install in the build process. This is so we can add additional asdf plugins that we need. In particular, we would like to speed up our build times by using custom asdf plugin similar to this one https://github.com/michallepicki/asdf-erlang-prebuilt-ubuntu-20.04, which would fetch official Erlang builds used by and provided by hex.pm, so that our deployments use them instead of building Erlang 24 every single release.

The second hook we would need is after asdf install is performed and we have erlang and Elixir. We'd need this to set private Hex repositories to import our private Hex packages but also Oban's PRO hex package and a web ui. I believe we have a request on this repo in #23 and this will only get more badly needed as Oban's popularity grows.

So I imagine this as being these two extra hooks, but I could also settle for an entirely custom build hook where you can specify commands that are executed instead of current hardcoded build process.

Let me know what you think would be best solution here form your point of view. I can provide a PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions