如何在Travis中指定构建文件夹?

时间:2013-01-22 21:37:43

标签: travis-ci

我有一个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处理构建命令。

4 个答案:

答案 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