pluginManagement { repositories { gradlePluginPortal() maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } } resolutionStrategy { eachPlugin { // We're using the 6.1.0-SNAPSHOT version of openapi-generator which contains a fix for generating nullable arrays (https://github.com/OpenAPITools/openapi-generator/issues/13025) // The snapshot version isn't available in the main Gradle Plugin Portal, so we added the Sonatype snapshot repository above. // The useModule command below allows us to map from the plugin id, `org.openapi.generator`, to the underlying module (https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-gradle-plugin/6.1.0-SNAPSHOT/_ if (requested.id.id == 'org.openapi.generator') { useModule "org.openapitools:openapi-generator-gradle-plugin:${requested.version}" } } } } // Configure the gradle enterprise plugin to enable build scans. Enabling the plugin at the top of the settings file allows the build scan to record // as much information as possible. plugins { id "com.gradle.enterprise" version "3.4.1" id 'com.github.burrunan.s3-build-cache' version "1.5" } gradleEnterprise { buildScan { termsOfServiceUrl = "https://gradle.com/terms-of-service" termsOfServiceAgree = "yes" } } ext.isCiServer = System.getenv().containsKey("CI") buildCache { local { // Local build cache is dangerous as it might produce inconsistent results // in case developer modifies files while the build is running enabled = false } remote(com.github.burrunan.s3cache.AwsS3BuildCache) { region = 'us-east-2' bucket = 'airbyte-buildcache' prefix = 'cache/' push = isCiServer // Credentials will be taken from S3_BUILD_CACHE_... environment variables // anonymous access will be used if environment variables are missing } } rootProject.name = 'airbyte' // definition for dependency resolution dependencyResolutionManagement { repositories { maven { url 'https://airbyte.mycloudrepo.io/public/repositories/airbyte-public-jars/' } } versionCatalogs { libs { from(files("deps.toml")) } } } // SUB_BUILD is an enum of , PLATFORM, CONNECTORS_BASE, ALL_CONNECTORS and OCTAVIA_CLI. Blank is equivalent to all. if (!System.getenv().containsKey("SUB_BUILD")) { println("Building all of Airbyte.") } else { def subBuild = System.getenv().get("SUB_BUILD") println("Building Airbyte Sub Build: " + subBuild) if (subBuild != "PLATFORM" && subBuild != "CONNECTORS_BASE" && subBuild != "ALL_CONNECTORS" && subBuild != "OCTAVIA_CLI") { throw new IllegalArgumentException(String.format("%s is invalid. Must be unset or PLATFORM or CONNECTORS_BASE, ALL_CONNECTORS or OCTAVIA_CLI", subBuild)) } } // shared include ':airbyte-commons' // shared by CONNECTORS_BASE and PLATFORM sub builds include ':airbyte-api' include ':airbyte-commons-cli' include ':airbyte-commons-docker' include ':airbyte-commons-protocol' include ':airbyte-config:init' include ':airbyte-config:config-models' // reused by acceptance tests in connector base. include ':airbyte-db:db-lib' // reused by acceptance tests in connector base. include ':airbyte-json-validation' include ':airbyte-metrics:metrics-lib' include ':airbyte-oauth' include ':airbyte-protocol:protocol-models' include ':airbyte-test-utils' // airbyte-workers has a lot of dependencies. include ':airbyte-analytics' // transitively used by airbyte-workers. include ':airbyte-commons-temporal' include ':airbyte-commons-worker' include ':airbyte-config:config-persistence' // transitively used by airbyte-workers. include ':airbyte-persistence:job-persistence' // transitively used by airbyte-workers. include ':airbyte-db:jooq' // transitively used by airbyte-workers. include ':airbyte-notification' // transitively used by airbyte-workers. include ':airbyte-worker-models' // platform if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "PLATFORM") { include ':airbyte-bootloader' include ':airbyte-config:specs' //include ':airbyte-connector-builder-server' include ':airbyte-container-orchestrator' include ':airbyte-cron' include ':airbyte-metrics:reporter' include ':airbyte-proxy' include ':airbyte-server' include ':airbyte-temporal' include ':airbyte-tests' include ':airbyte-webapp' include ':airbyte-webapp-e2e-tests' include ':airbyte-workers' } // connectors base if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "CONNECTORS_BASE" || System.getenv().get("SUB_BUILD") == "ALL_CONNECTORS") { include ':airbyte-cdk:python' include ':airbyte-integrations:bases:base' include ':airbyte-integrations:bases:base-java' include ':airbyte-integrations:bases:base-java-s3' include ':airbyte-integrations:bases:base-normalization' include ':airbyte-integrations:bases:base-standard-source-test-file' include ':airbyte-integrations:bases:source-acceptance-test' include ':airbyte-integrations:bases:standard-destination-test' include ':airbyte-integrations:bases:s3-destination-base-integration-test' include ':airbyte-integrations:bases:standard-source-test' include ':airbyte-integrations:connector-templates:generator' include ':airbyte-integrations:bases:debezium-v1-9-6' // Needed by normalization integration tests include ':airbyte-integrations:connectors:destination-bigquery' include ':airbyte-integrations:connectors:destination-jdbc' include ':airbyte-integrations:connectors:destination-mysql' include ':airbyte-integrations:connectors:destination-postgres' include ':airbyte-integrations:connectors:destination-redshift' include ':airbyte-integrations:connectors:destination-snowflake' include ':airbyte-integrations:connectors:destination-oracle' include ':airbyte-integrations:connectors:destination-mssql' include ':airbyte-integrations:connectors:destination-clickhouse' include ':airbyte-integrations:connectors:destination-tidb' //Needed by destination-bigquery include ':airbyte-integrations:connectors:destination-s3' include ':airbyte-integrations:connectors:destination-gcs' include ':tools:code-generator' } if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "OCTAVIA_CLI") { include ':octavia-cli' } // connectors if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "ALL_CONNECTORS") { // include all connector projects def integrationsPath = rootDir.toPath().resolve('airbyte-integrations/connectors') println integrationsPath integrationsPath.eachDir { dir -> def buildFiles = file(dir).list { file, name -> name == "build.gradle" } if (buildFiles.length == 1) { include ":airbyte-integrations:connectors:${dir.getFileName()}" } } }