155 lines
6.7 KiB
Groovy
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()}"
|
|
}
|
|
}
|
|
}
|