我有一个github存储库user/repo
但实际项目位于子文件夹user/repo/project/build.sbt
中
我应该在.travis.yml
写什么来让Travis忽略顶级文件夹并只在项目文件夹中工作?
受this的启发,我尝试了以下无法解决的问题:
env:
global:
- REPO="user/repo"
- CI_HOME=`pwd`/$REPO
script: sh -c 'cd $CI_HOME/project' && sbt ++$TRAVIS_SCALA_VERSION package
错误日志:
$ sh -c 'cd $CI_HOME/project' && sbt ++$TRAVIS_SCALA_VERSION package
Detected sbt version 0.12.2-RC1
/home/travis/build/user/repo doesn't appear to be an sbt project.
理想情况下,应该有一种方法来指定构建文件夹,但让Travis处理构建命令。
答案 0 :(得分:107)
您还可以尝试在 .travis.yml 文件中添加以下行:
before_script: cd project
答案 1 :(得分:12)
只需编写一个shell脚本并使用它来构建您的项目。确保它在本地工作。 这样的事情可以解决问题:
build.sh
:
#!/bin/sh
cd $TRAVIS_BUILD_DIR/project
sbt ++$TRAVIS_SCALA_VERSION package
.travis.yml
:
script: build.sh
答案 2 :(得分:0)
在.travis.yml文件下面添加应该这样做:
before_script: cd <project_name>
script:
- sbt compile
- sbt test
答案 3 :(得分:-1)
对于Bitbucket管道,遵循此setup guide时,如果您的项目位于git根目录的子文件夹中,则可能会出现此错误:
chmod:无法访问“ gradlew”:没有此类文件或目录
因此,在构建代码之前,请在您的 bitbucket-pipelines.yml 中使用此修改将 cd
放入子文件夹:
image: mingc/android-build-box:latest pipelines: default: - step: script: - cd project - chmod +x gradlew - ./gradlew assembleDebug