【问题标题】:error during execution CI/CD in gitlab for a project在项目的 gitlab 中执行 CI/CD 期间出错
【发布时间】:2018-06-11 17:47:06
【问题描述】:

我需要配置 gitlab 的 CI/CD 服务。所以,我创建了一个文件.gitlab-ci.yml

image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "26"
  ANDROID_BUILD_TOOLS: "26.0.2"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip
  - unzip android-sdk.zip
  - export ANDROID_HOME=$PWD/
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter android-${ANDROID_COMPILE_SDK}
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter platform-tools
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter build-tools-${ANDROID_BUILD_TOOLS}
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-android-m2repository
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-google_play_services
  - echo y | $ANDROID_HOME/tools/android --silent update sdk --no-ui --all --filter extra-google-m2repository
  - export PATH=$PATH:$ANDROID_HOME
  - chmod +x ./gradlew

stages:
  - build

build:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

我只需要在云中构建一个工件而无需测试。因此,在 master 提交后,cd 管道开始执行,并失败。下载 sdk 一直失败:

.....
Preparing to unpack .../libc6-i386_2.24-11+deb9u1_amd64.deb ...
Unpacking libc6-i386 (2.24-11+deb9u1) ...
Selecting previously unselected package lib32z1.
Preparing to unpack .../lib32z1_1%3a1.2.8.dfsg-5_amd64.deb ...
Unpacking lib32z1 (1:1.2.8.dfsg-5) ...
Selecting previously unselected package lib32gcc1.
Preparing to unpack .../lib32gcc1_1%3a6.3.0-18_amd64.deb ...
Unpacking lib32gcc1 (1:6.3.0-18) ...
Selecting previously unselected package lib32stdc++6.
Preparing to unpack .../lib32stdc++6_6.3.0-18_amd64.deb ...
Unpacking lib32stdc++6 (6.3.0-18) ...
Setting up libc6-i386 (2.24-11+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Setting up lib32z1 (1:1.2.8.dfsg-5) ...
Setting up lib32gcc1 (1:6.3.0-18) ...
Setting up lib32stdc++6 (6.3.0-18) ...
Processing triggers for libc-bin (2.24-11+deb9u1) ...
$ wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SDK_TOOLS}-linux.zip
ERROR: Job failed: exit code 1

【问题讨论】:

    标签: android gitlab-ci


    【解决方案1】:

    您没有ANDROID_SDK_TOOLS 中使用的变量wget,您只有:

    • ANDROID_BUILD_TOOLS
    • ANDROID_COMPILE_SDK

    【讨论】:

    • 是的,我忘记了。但是当我像这样添加这个变量时:variables: ANDROID_COMPILE_SDK: "26" ANDROID_BUILD_TOOLS: "26.0.2" ANDROID_SDK_TOOLS: "26.0.2"wget 上再次失败$ wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/tools_r${ANDROID_SD‌​K_TOOLS}-linux.zip ERROR: Job failed: exit code 1
    • 请删除 wget 上的 --quiet 并发布错误
    • --2018-01-02 15:08:33-- https://dl.google.com/android/repository/tools_r26.0.2-linux.zip Resolving dl.google.com (dl.google.com)... 74.125.141.190, 74.125.141.91, 74.125.141.93, ... Connecting to dl.google.com (dl.google.com)|74.125.141.190|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2018-01-02 15:08:33 ERROR 404: Not Found. 我想过这样的事情。事实证明,无法下载 Android SDK 工具。所以这个链接不正确:dl.google.com/android/repository/tools_r26.0.2-linux.zip
    【解决方案2】:

    以下配置设置对我有用。 Gitlab 似乎没有更新默认的 .yml 文件。更多详情请见Link

    image: openjdk:8-jdk
    
    cache:
      paths:
        - .m2/
        - .gradle/
    
    variables:
      ANDROID_COMPILE_SDK: "26"
      ANDROID_BUILD_TOOLS: "26.0.2"
      ANDROID_SDK_TOOLS: "26.0.2"
    
    
    before_script:
      - apt-get --quiet update --yes
      - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
    
      - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
      - unzip -q android-sdk.zip -d android-sdk-linux
    
      - mkdir android-sdk-linux/licenses
      - printf "8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e" > android-sdk-linux/licenses/android-sdk-license
      - android-sdk-linux/tools/bin/sdkmanager --update > update.log
      - android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" "build-tools;${ANDROID_BUILD_TOOLS}" "extras;google;m2repository" "extras;android;m2repository" > installPlatform.log
    
      - export ANDROID_HOME=$PWD/android-sdk-linux
      - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
      - chmod +x ./gradlew
    
    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - ./gradlew assembleDebug
      artifacts:
        paths:
        - app/build/outputs/
    
    unitTests:
      stage: test
      script:
        - ./gradlew test
    

    【讨论】:

    • 谢谢,我试了一下,拜托,看看新的答案(我在里面放了这个脚本的日志)
    【解决方案3】:

    $ android-sdk-linux/tools/bin/sdkmanager --update > update.log Warning: File /root/.android/repositories.cfg could not be loaded. $ android-sdk-linux/tools/bin/sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" "build-tools;${ANDROID_BUILD_TOOLS}" "extras;google;m2repository" "extras;android;m2repository" > installPlatform.log Warning: File /root/.android/repositories.cfg could not be loaded. $ export ANDROID_HOME=$PWD/android-sdk-linux $ export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/ $ chmod +x ./gradlew $ ./gradlew assembleDebug Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain 错误:作业失败:退出代码 1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 2021-12-21
      • 1970-01-01
      • 2018-12-15
      • 2021-09-13
      • 2020-03-07
      • 2021-04-17
      相关资源
      最近更新 更多