wget: команда не найдена в конвейере Jenkins - PullRequest
0 голосов
/ 05 февраля 2020

у меня в Ма c, команда wget работает. Как исправить эту проблему?

Сообщение об ошибке

wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip /Users/don/.jenkins/workspace/demo@tmp/durable-2702e009/script.sh: строка 1: wget: команда не найдена

Полный конвейерный скрипт

node('master') {
    def home = sh(script: "echo $ANDROID_HOME",returnStdout: true).trim()  

        def SDKPath = "$home/Android/sdk"
        stage("Preparing SDK"){
            // Check SDK Downloaded
            def isSDKDownloaded = sh(script: "test -e sdk-tools-linux-4333796.zip && echo true || echo false",returnStdout: true).trim()
            if(isSDKDownloaded == "false"){
                // Download SDK
                sh "wget 'https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip'"
            }
            // Check if SDK is Extracted
            def isExtracted = sh(script: "test -e $SDKPath/tools && echo true || echo false",returnStdout: true).trim()
            if(isExtracted == "false"){
                sh "mkdir -p $SDKPath"
                //Unzip SDK
                sh "unzip sdk-tools-linux-4333796.zip -d $SDKPath"
            }
// Install SDK Tools
            sh "yes | $SDKPath/tools/bin/sdkmanager 'build-tools;28.0.3' 'platform-tools' 'platforms;android-27'"
sh "ls $SDKPath/licenses"
            // See installed And Available SDK
            sh "$SDKPath/tools/bin/sdkmanager --list"
            // Accept All SDK Licences
            sh "yes | $SDKPath/tools/bin/sdkmanager --licenses"
        }

def selectedBranch = SELECTED_RELEASE_BRANCH
         stage('Checkout') {
             git branch: selectedBranch, url: 'git@gitlab.com:o-apps/demo.git'
            // Remove Existing local properties
            sh 'rm local.properties ||:'
            // Write sdk.dir Path into local properties file
            sh "echo 'sdk.dir=$SDKPath' >> local.properties"
         }

         stage('Setup Tools') {
             withCredentials([file(credentialsId: 'android_keystore', variable: 'KEYFILE')]) {
                 sh "cp \$KEYFILE app/key.jks"
             }   
         }

         stage('Build Release APK') {
             sh "./gradlew clean assembleRelease"
         }

         stage('Upload to Play Store') {
            androidApkUpload googleCredentialsId: 'key', apkFilesPattern: '**/*-release.apk', trackName: 'alpha'
         }

         stage('Cleanup Credential') {
             sh "rm app/key.jks"
         }
}

1 Ответ

1 голос
/ 05 февраля 2020

Вероятно, это связано с переменной окружения $PATH, которая отличается между вашим пользователем и пользователем, запускающим Jenkins. Ваш пользователь может изменить его $PATH, развернув его в файле ресурсов оболочки (~ / .bashr c, ~ / .zshr c).

Не беспокойтесь, вы можете использовать полный путь.

Чтобы узнать полный путь к wget, запустите его на машине, которая запускает конвейер (помеченной master):

%  which wget
/usr/local/bin/wget

(Ваш путь может естественно отличаться.)

Теперь используйте полный путь:

                // Download SDK
                sh "/usr/local/bin/wget 'https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...