// 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" } gradleEnterprise { buildScan { termsOfServiceUrl = "https://gradle.com/terms-of-service" termsOfServiceAgree = "yes" } } 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-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-queue' include ':airbyte-test-utils' // airbyte-workers has a lot of dependencies. include ':airbyte-workers' // reused by acceptance tests in connector base. include ':airbyte-analytics' // transitively used by airbyte-workers. include ':airbyte-config:config-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-scheduler:scheduler-models' // transitively used by airbyte-workers. include ':airbyte-scheduler:scheduler-persistence' // used by airbyte-workers. // platform if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "PLATFORM") { include ':airbyte-bootloader' include ':airbyte-cli' include ':airbyte-config:init' include ':airbyte-config:specs' include ':airbyte-container-orchestrator' include ':airbyte-metrics:reporter' include ':airbyte-scheduler:client' include ':airbyte-server' include ':airbyte-temporal' include ':airbyte-tests' include ':airbyte-webapp' include ':airbyte-webapp-e2e-tests' } // 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-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:standard-source-test' include ':airbyte-integrations:connector-templates:generator' include ':airbyte-integrations:bases:debezium-v1-4-2' include ':airbyte-integrations:bases:debezium-v1-9-2' // 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' //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()}" } } }