1
0
mirror of synced 2025-12-23 21:03:15 -05:00
Files
airbyte/settings.gradle

155 lines
6.7 KiB
Groovy

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 <blank>, PLATFORM, CONNECTORS_BASE, CDK, 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 != "CONNECTORS_BASE" && subBuild != "ALL_CONNECTORS" && subBuild != "OCTAVIA_CLI" && subBuild != "CDK") {
throw new IllegalArgumentException(String.format("%s is invalid. Must be unset or CONNECTORS_BASE, CDK, ALL_CONNECTORS or OCTAVIA_CLI", subBuild))
}
}
if (!System.getenv().containsKey("SUB_BUILD") || System.getenv().get("SUB_BUILD") == "CDK" || System.getenv().get("SUB_BUILD") == "ALL_CONNECTORS") {
include ':airbyte-commons' // this wouldn't be necessary if it wasn't from https://github.com/airbytehq/airbyte/blob/645558b74aab0b91fda1b4628b37b7095d92b4cc/build.gradle
include ':tools:code-generator:airbyteDocker'
include ':airbyte-cdk:python'
}
if (!System.getenv().containsKey("SUB_BUILD") || (System.getenv().containsKey("SUB_BUILD") && System.getenv().get("SUB_BUILD") != "CDK")) {
// shared
include ':airbyte-commons'
include ':airbyte-api'
include ':airbyte-commons-cli'
include ':airbyte-commons-protocol'
include ':airbyte-config-oss:init-oss'
include ':airbyte-config-oss:config-models-oss' // 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-test-utils'
include ':airbyte-connector-test-harnesses:acceptance-test-harness'
}
// 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:bases-destination-jdbc' // needs to be lexicographically after base-java and base-normalization to avoid race condition
include ':airbyte-integrations:bases:base-standard-source-test-file'
include ':airbyte-integrations:bases:connector-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'
// Needed by normalization integration tests
include ':airbyte-integrations:connectors:destination-bigquery'
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'
include ':airbyte-integrations:connectors:destination-duckdb'
//Needed by destination-bigquery
include ':airbyte-integrations:connectors:destination-s3'
include ':airbyte-integrations:connectors:destination-gcs'
include ':tools:code-generator'
include 'airbyte-integrations:connectors-performance:source-harness'
include 'airbyte-integrations:connectors-performance:destination-harness'
}
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()}"
}
}
}