Rebase v3.2.0 #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Debezium (PR) | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| - 1.* | |
| - 2.* | |
| - 3.* | |
| - 4.* | |
| env: | |
| MAVEN_FULL_BUILD_PROJECTS: "\\!debezium-microbenchmark-oracle" | |
| # Pushes to each pull request will trigger a cancellation of any existing push jobs for that pull request, | |
| # and will restart the build based on the latest push data for that specific pull request. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| jobs: | |
| # This job is responsible for inspecting the changes in the repository and setting specific output variables | |
| # that subsequent jobs can use to determine whether a particular job should be skipped or included. | |
| file_changes: | |
| name: "Detect repository changes" | |
| runs-on: ubuntu-latest | |
| outputs: | |
| ai-changed: ${{ steps.changed-files-ai.outputs.any_changed }} | |
| openlineage-changed: ${{ steps.changed-files-openlineage.outputs.any_changed }} | |
| common-changed: ${{ steps.changed-files-common.outputs.any_changed }} | |
| mongodb-changed: ${{ steps.changed-files-mongodb.outputs.any_changed }} | |
| mariadb-changed: ${{ steps.changed-files-mariadb.outputs.any_changed }} | |
| mysql-changed: ${{ steps.changed-files-mysql.outputs.any_changed }} | |
| postgresql-changed: ${{ steps.changed-files-postgresql.outputs.any_changed }} | |
| oracle-changed: ${{ steps.changed-files-oracle.outputs.any_changed }} | |
| sqlserver-changed: ${{ steps.changed-files-sqlserver.outputs.any_changed }} | |
| jdbc-changed: ${{ steps.changed-files-jdbc.outputs.any_changed }} | |
| outbox-changed: ${{ steps.changed-files-outbox.outputs.any_changed }} | |
| schema-generator-changed: ${{ steps.changed-files-schema-generator.outputs.any_changed }} | |
| debezium-testing-changed: ${{ steps.changed-files-debezium-testing.outputs.any_changed }} | |
| debezium-testing-mongodb-changed: ${{ steps.changed-files-debezium-testing-mongodb.outputs.any_changed }} | |
| mysql-ddl-parser-changed: ${{ steps.changed-files-mysql-ddl-parser.outputs.any_changed }} | |
| oracle-ddl-parser-changed: ${{ steps.changed-files-oracle-ddl-parser.outputs.any_changed }} | |
| mariadb-ddl-parser-changed: ${{ steps.changed-files-mariadb-ddl-parser.outputs.any_changed }} | |
| documentation-only-changed: ${{ steps.changed-files-documentation.outputs.only_changed }} | |
| storage-only-changed: ${{ steps.changed-files-storage.outputs.only_changed }} | |
| extensions-changed: ${{ steps.changed-files-extensions.outputs.any_changed }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Get modified files (Common) | |
| id: changed-files-common | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| support/checkstyle/** | |
| support/revapi/** | |
| debezium-api/** | |
| debezium-assembly-descriptors/** | |
| debezium-core/** | |
| debezium-embedded/** | |
| debezium-revapi/** | |
| debezium-ide-configs/** | |
| debezium-parent/pom.xml | |
| debezium-bom/pom.xml | |
| debezium-storage/** | |
| debezium-scripting/** | |
| pom.xml | |
| .mvn/** | |
| .github/actions/** | |
| .github/workflows/debezium-workflow-pr.yml | |
| - name: Get modified files (MongoDB) | |
| id: changed-files-mongodb | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-sink/** | |
| debezium-connector-mongodb/** | |
| - name: Get modified files (MySQL) | |
| id: changed-files-mysql | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-connector-mysql/** | |
| debezium-connector-binlog/** | |
| - name: Get modified files (MariaDB) | |
| id: changed-files-mariadb | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-connector-mariadb/** | |
| debezium-connector-binlog/** | |
| - name: Get modified files (PostgreSQL) | |
| id: changed-files-postgresql | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-connector-postgres/** | |
| - name: Get modified files (Oracle) | |
| id: changed-files-oracle | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-connector-oracle/** | |
| - name: Get modified files (SQL Server) | |
| id: changed-files-sqlserver | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-connector-sqlserver/** | |
| - name: Get modified files (JDBC) | |
| id: changed-files-jdbc | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-sink/** | |
| debezium-connector-jdbc/** | |
| - name: Get modified files (Quarkus Outbox) | |
| id: changed-files-outbox | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-quarkus-outbox/** | |
| debezium-quarkus-outbox-common/** | |
| debezium-quarkus-outbox-reactive/** | |
| - name: Get modified files (Schema Generator) | |
| id: changed-files-schema-generator | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-schema-generator/** | |
| - name: Get modified files (Debezium Testing) | |
| id: changed-files-debezium-testing | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-testing/** | |
| - name: Get modified files (Debezium Testing MongoDB) | |
| id: changed-files-debezium-testing-mongodb | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-testing/**/MongoDb*.java | |
| - name: Get modified files (MySQL DDL parser) | |
| id: changed-files-mysql-ddl-parser | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mysql/** | |
| debezium-ddl-parser/src/main/java/io/debezium/antlr/** | |
| debezium-ddl-parser/src/test/resources/mysql/examples/** | |
| - name: Get modified files (MariaDB DDL parser) | |
| id: changed-files-mariadb-ddl-parser | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/mariadb/** | |
| debezium-ddl-parser/src/main/java/io/debezium/antlr/** | |
| debezium-ddl-parser/src/test/resources/mariadb/examples/** | |
| - name: Get modified files (Oracle DDL parser) | |
| id: changed-files-oracle-ddl-parser | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-ddl-parser/src/main/antlr4/io/debezium/ddl/parser/oracle/** | |
| debezium-ddl-parser/src/main/java/io/debezium/antlr/** | |
| debezium-ddl-parser/src/main/java/io/debezium/ddl/parser/oracle/** | |
| debezium-ddl-parser/src/test/resources/oracle/examples/** | |
| - name: Get modified files (Documentation) | |
| id: changed-files-documentation | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| documentation/** | |
| - name: Get modified files (Storage) | |
| id: changed-files-storage | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-storage/** | |
| - name: Get modified files (Quarkus Extensions) | |
| id: changed-files-extensions | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| quarkus-debezium-parent/** | |
| - name: Get modified files (AI) | |
| id: changed-files-ai | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-ai/** | |
| - name: Get modified files (OpenLineage) | |
| id: changed-files-openlineage | |
| uses: tj-actions/[email protected] | |
| with: | |
| files: | | |
| debezium-openlineage/** | |
| # Approx 1m | |
| build_cache: | |
| name: "Update Dependencies" | |
| needs: [ file_changes ] | |
| if: ${{ needs.file_changes.outputs.documentation-only-changed == 'false' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Debezium Server) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-server | |
| path: server | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| # GitHub actions seem to struggle returning actions/cache cache-hit | |
| # Directly use the cache action here to control whether to fetch dependencies | |
| - id: maven-cache-check | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.m2/repository | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| # Caches should be restored based on a logical order to minimize the build and test | |
| # execution time. Here the logic is as follows: | |
| # 1. Restore this PR's cache if the PR has previously been built | |
| # 2. Restore the latest main cache if the core pom has not changed | |
| # 3. Restore the latest main cache available | |
| # This should minimize the download time required for updating dependencies | |
| restore-keys: | | |
| maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| maven-debezium-test-push-build-${{ hashFiles('core/**/pom.xml') }} | |
| maven-debezium-test-push-build- | |
| # This step is responsible for pulling down artifacts | |
| # Unfortunately due to the nature of how some of the maven workflows work, the only reliable way | |
| # to guarantee fully seeding the maven cache is to run a full build. This step does not execute | |
| # tests, formatting, checkstyle, nor import sorts. | |
| # | |
| # This check is conditioned so that if the cache-key was not found, we will execute this step. | |
| # If the cache-key was found, this means we cannot update the cache and therefore we should | |
| # not need to explicitly run this step. This should improve response of format/checkstyle | |
| # errors to users faster. | |
| # | |
| # This job also explicitly excludes the "debezium-microbenchmark-oracle" module temporarily. | |
| # There is a dependency on xstream.jar for this module that should be fixed and made to not | |
| # be required so that the module can be built on GitHub Actions. | |
| - name: Download dependencies (Core) | |
| if: steps.maven-cache-check.outputs.cache-hit != 'true' | |
| run: > | |
| ./core/mvnw -B -ntp clean install -f core/pom.xml | |
| -pl ${{ env.MAVEN_FULL_BUILD_PROJECTS }} | |
| -Dformat.skip=true | |
| -Dcheckstyle.skip=true | |
| -Dorg.slf4j.simpleLogger.showDateTime=true | |
| -Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS" | |
| -DskipTests=true | |
| -DskipITs=true | |
| - name: Download dependencies (Debezium Server) | |
| if: steps.maven-cache-check.outputs.cache-hit != 'true' | |
| # There are some corner cases where dependencies change and core no longer defines the | |
| # dependency; however Debezium Server due to checking out main, may still refer to it. | |
| # In this case, if the artifact fetch fails, we shouldn't fail the job. Fixing the | |
| # dependency in the Debezium Server repository with the same Jira issue tag as the | |
| # main repository's PR will run the build based on the PR changes in main, and will | |
| # allow validating the Debezium Server build separately. | |
| continue-on-error: true | |
| run: > | |
| ./server/mvnw -B -ntp clean install -f server/pom.xml | |
| -Dformat.skip=true | |
| -Dcheckstyle.skip=true | |
| -Dorg.slf4j.simpleLogger.showDateTime=true | |
| -Dorg.slf4j.simpleLogger.dateTimeFormat="YYYY-MM-dd HH:mm:ss,SSS" | |
| -DskipTests=true | |
| -DskipITs=true | |
| # Approx 1m | |
| check_style: | |
| name: "Checkstyle and Formatting" | |
| needs: [ build_cache ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/checkstyle-format | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| ######################################################################################## | |
| ## CONNECTORS | |
| ## Please define callable workflows here in alphabetical connector name order. | |
| ######################################################################################## | |
| build_cassandra: | |
| name: Cassandra | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Cassandra) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-connector-cassandra | |
| path: cassandra | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-cassandra | |
| with: | |
| path-core: core | |
| path-cassandra: cassandra | |
| build_db2: | |
| name: Db2 | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Db2) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-connector-db2 | |
| path: db2 | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-db2 | |
| with: | |
| path-core: core | |
| path-db2: db2 | |
| build_ibmi: | |
| name: IBMi | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (IBMi) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-connector-ibmi | |
| path: ibmi | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-ibmi | |
| with: | |
| path-core: core | |
| path-ibmi: ibmi | |
| build_informix: | |
| name: Informix | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| uses: ./.github/workflows/connector-informix-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| # Needed because sibling repository | |
| checkout-ref: ${{ github.event.pull_request.base.ref }} | |
| build_jdbc: | |
| name: JDBC | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.mariadb-changed == 'true' || needs.file_changes.outputs.postgresql-changed == 'true' || needs.file_changes.outputs.sqlserver-changed == 'true' || needs.file_changes.outputs.sqlserver-changed == 'true' || needs.file_changes.outputs.db2-changed == 'true' || needs.file_changes.outputs.jdbc-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| uses: ./.github/workflows/connector-jdbc-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_mariadb: | |
| name: MariaDB | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mariadb-changed == 'true' || needs.file_changes.outputs.mariadb-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| uses: ./.github/workflows/connector-mariadb-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_mongodb: | |
| name: MongoDB | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mongodb-changed == 'true' || needs.file_changes.outputs.debezium-testing-mongodb-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }} | |
| uses: ./.github/workflows/connector-mongodb-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_mysql: | |
| name: MySQL | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| uses: ./.github/workflows/connector-mysql-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_oracle: | |
| name: Oracle | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.oracle-changed == 'true' || needs.file_changes.outputs.oracle-ddl-parser-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| uses: ./.github/workflows/connector-oracle-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_postgresql: | |
| name: PostgreSQL | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.postgresql-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }} | |
| uses: ./.github/workflows/connector-postgresql-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_sqlserver: | |
| name: SQL Server | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.sqlserver-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-sqlserver | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_spanner: | |
| name: Spanner | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Spanner) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-connector-spanner | |
| path: spanner | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-spanner | |
| with: | |
| path-core: core | |
| path-spanner: spanner | |
| build_vitess: | |
| name: Vitess | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Vitess) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-connector-vitess | |
| path: vitess | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-vitess | |
| with: | |
| path-core: core | |
| path-vitess: vitess | |
| ######################################################################################## | |
| ## NON-CONNECTORS | |
| ## Please define callable workflows here in alphabetical item name order. | |
| ######################################################################################## | |
| apicurio_checks: | |
| name: "Apicurio checks" | |
| needs: [ check_style, file_changes ] | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mongodb-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.postgresql-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' }} | |
| uses: ./.github/workflows/apicurio-check-workflow.yml | |
| with: | |
| maven-cache-key: maven-debezium-test-build | |
| build_ai: | |
| name: "Debezium AI module" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.ai-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-ai | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_openlineage: | |
| name: "Debezium OpenLineage module" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.openlineage-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-openlineage | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_extensions: | |
| name: "Debezium Quarkus Extensions" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.extensions-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-quarkus-extensions | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_server: | |
| name: "Debezium Server" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action (Core) | |
| uses: actions/checkout@v4 | |
| with: | |
| path: core | |
| - name: Checkout Action (Debezium Server) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: debezium/debezium-server | |
| path: server | |
| ref: ${{ github.event.pull_request.base.ref }} | |
| - uses: ./core/.github/actions/setup-java | |
| - uses: ./core/.github/actions/maven-cache | |
| with: | |
| key: maven-debezium-test-build-${{ hashFiles('core/**/pom.xml') }} | |
| - uses: ./core/.github/actions/build-debezium-server | |
| with: | |
| path-core: core | |
| path-server: server | |
| build_outbox: | |
| name: "Outbox Extension" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.outbox-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-outbox | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_schema_generator: | |
| name: "Schema Generator" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.schema-generator-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-schema-generator | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_storage: | |
| name: "Storage" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.mysql-changed == 'true' || needs.file_changes.outputs.mysql-ddl-parser-changed == 'true' || needs.file_changes.outputs.storage-only-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-storage | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} | |
| build_testing: | |
| name: "Testing Module" | |
| needs: [ check_style, file_changes ] | |
| runs-on: ubuntu-latest | |
| if: ${{ needs.file_changes.outputs.common-changed == 'true' || needs.file_changes.outputs.debezium-testing-changed == 'true' }} | |
| steps: | |
| - name: Checkout Action | |
| uses: actions/checkout@v4 | |
| - uses: ./.github/actions/build-debezium-testing | |
| with: | |
| maven-cache-key: maven-debezium-test-build-${{ hashFiles('**/pom.xml') }} |