react-native-community / docker-android

Android Docker Image for React Native and common android development.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to integrate with Jenkins

nadishan opened this issue · comments

I run this image using Jenkins. But gradlew is failed with this error message.

The SDK directory is not writable (/opt/android)

Jenkinsefile

pipeline {
  agent {
    docker {
      image 'reactnativecommunity/react-native-android'
    }

  }
  stages {
    stage('Test') {
      steps {
        sh 'npm install'
      }
    }

    stage('Build') {
      steps {
        sh 'cd android && chmod +x gradlew && ./gradlew assembleRelease'
      }
    }

    stage('PROD') {
      parallel {
        stage('PROD') {
          steps {
            echo 'prod'
          }
        }

        stage('DEV') {
          steps {
            echo 'dev'
          }
        }

      }
    }

  }
  environment {
    npm_config_cache = 'npm-cache'
  }
}

Not sure jenkins version you are using. Works well on our jenkins server.

I'm having issues with our jenkins installation as well. We're on Jenkins 2.289 and when using the docker agent, we're running inside it as the jenkins user on the node. This runs into a bunch of permissions and home directory issues inside the container during yarn / npm installs.

To get around this, we've tried running the container as root by passing -u 0:0. This works fine, but the outputs on our workspace are all owned by the root user (uid 0) and not readable by any of the subsequent steps (e.g., archiving artifacts).

If you @gengjiawen have any insights, I'd love to hear them. Thanks!

the issue on my side was using another buildToolsVersion from the one referenced in this repo.
For android 30, the build tools available is 30.0.3 which is different from the one react native used (30.0.2). This cause gradle to download it, which is something not possible.