【问题标题】:How to specify a build folder in Travis?如何在 Travis 中指定构建文件夹?
【发布时间】:2019-06-26 15:58:27
【问题描述】:

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

【问题讨论】:

    标签: travis-ci


    【解决方案1】:

    您也可以尝试在 .travis.yml 文件中添加以下行:

    before_script: cd project
    

    【讨论】:

    • 这是正确的解决方案。当前标记为正确的解决方案应更改为此解决方案。
    【解决方案2】:

    我尝试在我的 travis.yml 文件中使用它,但没有用

    before_script: cd project
    

    然后我尝试了这个

    before_install: cd project
    

    这很有效?

    【讨论】:

    【解决方案3】:

    只需编写一个 shell 脚本并使用它来构建您的项目。确保它在本地工作。 像这样的东西应该可以解决问题:

    build.sh:

    #!/bin/sh
    cd $TRAVIS_BUILD_DIR/project
    sbt ++$TRAVIS_SCALA_VERSION package
    

    .travis.yml:

    script: build.sh
    

    【讨论】:

    • 在 build.sh 上也需要一个 chmod 否则“权限被拒绝”
    • ++$TRAVIS_SCALA_VERSION 有什么用?告诉 travis 使用什么版本的 scala?不确定如何在本地运行?
    • 这里不相关,build.sh 可以包含任何内容。确保 build.sh 在本地运行。如果是这种情况,那么您可以使用它来告诉 travis 在运行构建作业时要做什么。
    • @iIOCowboy 的回答显然要好得多,并且获得了 10 倍的赞成票。
    【解决方案4】:

    在您的 .travis.yml 文件中添加以下内容即可:

    before_script: cd <project_name>
    script:
      - sbt compile
      - sbt test
    

    【讨论】:

      【解决方案5】:

      在您的 yml 文件中,在运行构建命令之前添加一个“cd sub-folder”步骤:

      默认: - 步: 脚本: - cd 项目 - sbt ++$TRAVIS_SCALA_VERSION 包

      gradle 项目示例:

      默认: - 步: 脚本: - cd 项目 - chmod +x gradlew - ./gradlew assembleDebug

      如果gradlew 文件位于与 git 根目录不同的文件夹中,这将修复类似 "chmod: cannot access 'gradlew': No such file or directory" 的错误。

      它也适用于使用 yml 文件的其他构建系统,例如 bitbucket-pipelines.yml

      【讨论】:

      • 问题是关于 Travis,而不是 Bitbucket Pipelines。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2015-06-17
      相关资源
      最近更新 更多