2017-05-31 5 views
0

gradlewファイルが自分のリポジトリのルートにないので、私が仕事に出られないというCircleCIに問題があります。私のデポは、ここで奪われたように彼のアーキテクチャの概要です:CircleCI別のフォルダにあるgradlewのトラブル

root 
-----> app_folder 
------------> some folders 
------------> some files 
------------> gradlew 
------> some files and folders 
------> circle.yml 

私は、cdコマンドを使用してapp_folderフォルダに移動して、パス変数を変更しようとしたが、それの何も

circle.ymlを働いていません

# 
# Build configuration for Circle CI 
# 

machine: 
    environment: 
     PATH: "~/$CIRCLE_PROJECT_REPONAME/app_folder:$PATH" 
     ANDROID_HOME: /usr/local/android-sdk-linux 
     GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' 
     _JAVA_OPTIONS: "-Xms512m -Xmx1024m" 
     ADB_INSTALL_TIMEOUT: "10" 
     ANDROID_API_LEVEL: 25 
     ANDROID_BUILD_TOOLS_VERSION: 25.0.2 
    java: 
     version: oraclejdk7 

dependencies: 
    cache_directories: 
     - ~/.gradle 
     - ~/.android 
     - /usr/local/android-sdk-linux/extras 

    pre: 
     - if [ ! -d "$ANDROID_HOME/tools" ]; then echo y | android update sdk --no-ui --all --filter "tools"; fi 
     - if [ ! -d "$ANDROID_HOME/platforms/android-$ANDROID_API_LEVEL" ]; then echo y | android update sdk --no-ui --all --filter "android-$ANDROID_API_LEVEL"; fi 
     - if [ ! -d "$ANDROID_HOME/build-tools/$ANDROID_BUILD_TOOLS_VERSION" ]; then echo y | android update sdk --no-ui --all --filter "build-tools-$ANDROID_BUILD_TOOLS_VERSION"; fi 
     - if [ ! -d "$ANDROID_HOME/add-ons/addon-google_apis-google-$ANDROID_API_LEVEL" ]; then echo y | android update sdk --no-ui --all --filter "addon-google_apis-google-$ANDROID_API_LEVEL"; fi 
     - echo y | android update sdk --no-ui --all --filter "extra-google-m2repository" 
     - echo y | android update sdk --no-ui --all --filter "extra-google-google_play_services" 
     - echo y | android update sdk --no-ui --all --filter "extra-android-m2repository" 

test: 
    override: 
    # start the emulator 
    - emulator -avd circleci-android24 -no-audio -no-window: 
     background: true 
     parallel: true 
    # wait for it to have booted 
    - circle-android wait-for-boot 
    # unlock the emulator screen 
    - sleep 30 
    - adb shell input keyevent 82 
    # run tests against the emulator. 
    - echo $PATH 
    - cd app_folder && .\gradlew connectedAndroidTest -PdisablePreDex 
- .\\app_folder\\gradlew connectedAndroidTest -PdisablePreDex 
- .\app_folder\\gradlew connectedAndroidTest -PdisablePreDex 
- .\gradlew connectedAndroidTest -PdisablePreDex ~/github_name/app_folder 
    # copy the build outputs to artifacts 
    - cp -r app_folder/app/build/outputs $CIRCLE_ARTIFACTS 
    # copy the test results to the test results directory. 
    - cp -r app_folder/app/build/outputs/androidTest-results/* $CIRCLE_TEST_REPORTS 

答えて

0

ここには2つのオプションがあります。最も速いのは、custom build directoryを指定することです。あなたの例を使用して、これは次のようになります。

general: 
    build_dir: app_folder 

これが原因CircleCIドキュメントごとです:

CircleCIは、その推論を実行するだけでなく、すべてはそのディレクトリ からコマンドを構築します。

2番目のオプションは、CircleCIの推論コマンドにまったく依存せず、Gradleなどのすべてを実行することです。すでにtest段階をオーバーライドしているため、dependencies段階もオーバーライドしてgradle dependenciesを自分で実行する必要があります。例えば

dependencies: 
    override: 
    - gradle --project-dir app_folder dependencies 

-Ricardo Nフェリシアーノ
開発伝道、CircleCI

1

あなただけの上にこれを追加する必要があります。

general: 
    build_dir: your_folder