HashNuke / heroku-buildpack-elixir

Heroku Buildpack for Elixir with nitro boost
MIT License
810 stars 304 forks source link

Can't deploy on Heroku-20, Erlang 23, Elixir 1.12 #198

Closed jaimeiniesta closed 3 years ago

jaimeiniesta commented 3 years ago

Hello, we've been using this buildpack on Heroku-18, Erlang 22 and Elixir 1.10 just fine but we're now upgrading, and we get these errors:

remote:        * MIX_ENV=staging
remote: -----> Checking Erlang and Elixir versions
remote:        Will use the following versions:
remote:        * Stack heroku-20
remote:        * Erlang 23.3.4.1
remote:        * Elixir v1.12.023
remote: -----> Stack changed, will rebuild
remote: -----> Cleaning all cache to force rebuilds
remote: -----> Fetching Erlang 23.3.4.1 from https://repo.hex.pm/builds/otp/ubuntu-20.04/OTP-23.3.4.1.tar.gz
remote: -----> Installing Erlang 23.3.4.1 (changed)
remote:
remote: -----> Fetching Elixir v1.12.023 for OTP 23 from https://repo.hex.pm/builds/elixir/v1.12.023-otp-23.zip
remote: -----> Installing Elixir v1.12.023 (changed)
remote: [/tmp/codon/tmp/cache/elixir-v1.12.023-otp-23.zip]
remote:   End-of-central-directory signature not found.  Either this file is not
remote:   a zipfile, or it constitutes one disk of a multi-part archive.  In the
remote:   latter case the central directory and zipfile comment will be found on
remote:   the last disk(s) of this archive.
remote: unzip:  cannot find zipfile directory in one of /tmp/codon/tmp/cache/elixir-v1.12.023-otp-23.zip or
remote:         /tmp/codon/tmp/cache/elixir-v1.12.023-otp-23.zip.zip, and cannot find /tmp/codon/tmp/cache/elixir-v1.12.023-otp-23.zip.ZIP, period.
remote: chmod: cannot access '/tmp/build_51ddfc30/.platform_tools/elixir/bin/*': No such file or directory
remote: -----> Installing Hex
remote: /tmp/codon/tmp/buildpacks/237a9a8d61e390f84eedde561cb0eacd53103573/lib/elixir_funcs.sh: line 77: mix: command not found
remote: -----> Installing rebar
remote: /tmp/codon/tmp/buildpacks/237a9a8d61e390f84eedde561cb0eacd53103573/lib/elixir_funcs.sh: line 83: mix: command not found
remote: -----> Executing hook before fetching app dependencies: ./bin/predeps.sh
remote: ./bin/predeps.sh: line 3: mix: command not found
remote:  !     Push rejected, failed to compile Elixir app.

Any idea on how to fix that? We've already tried purging the buildpack cache, no luck.

Thanks!

jaimeiniesta commented 3 years ago

My fault, I had set the wrong elixir version to 1.12.0-otp-23 as that's what I use in asdf, but it's not a real Elixir version, this is working fine now:

erlang_version=23.3.4.1
elixir_version=1.12.0
always_rebuild=true
hook_pre_fetch_dependencies="./bin/predeps.sh"