Jak określić folder build w Travis?

Mam repozytorium github user/repo ale prawdziwy projekt jest w podfolderze user/repo/project/build.sbt
Co powinienem napisać w .travis.yml, Aby Travis zignorował górny folder i działał tylko w folderze projektu?

Zainspirowany to próbowałem następujących, które nie zadziałały:

env:
  global:
    - REPO="user/repo"
    - CI_HOME=`pwd`/$REPO
script: sh -c 'cd $CI_HOME/project' && sbt ++$TRAVIS_SCALA_VERSION package

Dziennik Błędów:

$ 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.

Najlepiej, żeby był sposób na określenie folderu build, ale niech Travis zajmie się poleceniem build.

 36
Author: Community, 2013-01-23

5 answers

Po prostu napisz skrypt powłoki i użyj go do zbudowania swojego projektu. Upewnij się, że działa lokalnie. Coś takiego powinno załatwić sprawę:

build.sh:

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

.travis.yml:

script: build.sh
 9
Author: Odi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-22 15:41:12

Możesz również spróbować dodać następujący wiersz w swoim .travis.plik yml :

before_script: cd project
 83
Author: iOSCowboy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-10 10:18:59

Próbowałem użyć tego w moim travisie.plik yml ale nie działał

before_script: cd project

Then I tried this

before_install: cd project

I to zadziałało

 29
Author: Lxrd-AJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-03 16:37:37

Dodawanie poniżej na Twoim .travis.plik yml powinien to zrobić:

before_script: cd <project_name>
script:
  - sbt compile
  - sbt test
 0
Author: SanjeevGhimire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-24 20:04:34

Dla Bitbucket Pipelines, gdy wykonasz ten setup guide , może pojawić się ten błąd, jeśli twój projekt znajduje się w podfolderze katalogu głównego git:

Chmod: nie można uzyskać dostępu do 'gradlew': nie ma takiego pliku lub katalogu

Więc użyj tej modyfikacji w swoim Bitbucket-pipelines.yml to cd do podfolderu, przed zbudowaniem kodu:

image: mingc/android-build-box:latest

pipelines:
  default:
    - step:
        script:
          - cd project
          - chmod +x gradlew
          - ./gradlew assembleDebug
 0
Author: Mr-IDE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 07:46:06