0

我的 Django 应用程序使用与 Haskell 相关的包,例如 . HLint,以及一些非 Haskell 包,例如graphviz. 我在我的应用程序中使用shlex命令来调用 bash 脚本,然后继续调用包。这在本地运行良好。

但是,我还使用 Travis 将应用程序部署到 Heroku - 在那里,旨在激活 bash 脚本的视图无法运行。我正在运行一个 before_deploy 脚本来安装所需的包,并且 Travis 版本说它们已成功安装;我不认为 Heroku 应用程序可以使用这些包。

我的问题是:Heroku 应用程序中是否有可能提供所需的包?如果是这样,我如何配置 Heroku 以通过 bash 或其他方式运行它们?任何帮助将非常感激!

知道该应用程序在 Linux 环境中运行并且我正在使用单个 Python 构建包可能很有用。

代码

我的.travis.yml文件如下:

sudo: true
language: python
python:
- '3.6'
env:
- DJANGO=2.1.5
install:
- pip install -q Django==$DJANGO
- pip install -q -r requirements.txt
script:
- python manage.py test
before_deploy:
- "./before_deploy.sh"
deploy:
  provider: heroku
  api_key:
    secure: <REDACTED>
  app: hasnetdt-stage
notifications:
  email: false

这是before_deploy.sh供参考的脚本:

#!/bin/bash

sudo add-apt-repository -y ppa:hvr/ghc
sudo apt-get update
sudo apt-get install -y cabal-install-1.22 ghc-7.10.2
sudo apt-get install -y graphviz

export PATH=~/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.2/bin:$PATH
cabal sandbox init
cabal update
cabal install alex happy
cabal install hindent hlint

边注:

当我尝试在本地部署(即使用git push heroku master)时,Heroku 日志显示:

2019-03-24T18:41:29.637402+00:00 app[web.1]: ./static/scripts/prettify.sh: line 3: hindent: command not found
2019-03-24T18:41:29.644886+00:00 app[web.1]: ./static/scripts/linter.sh: line 3: hlint: command not found

但这可能是因为我在本地部署它而不是使用 Travis,所以 before_deploy 脚本没有运行。

4

0 回答 0