DBZ-6679 Only advance LogMiner start position when query has data #75
This file contains 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 and Test Oracle Connector | |
on: | |
push: | |
branches: | |
- main | |
- 1.* | |
- 2.* | |
paths: | |
- 'support/checkstyle/**' | |
- 'debezium-api/**' | |
- 'debezium-ddl-parser/**' | |
- 'debezium-assembly-descriptors/**' | |
- 'debezium-core/**' | |
- 'debezium-embedded/**' | |
- 'debezium-connector-oracle/**' | |
- 'debezium-parent/pom.xml' | |
- 'debezium-bom/pom.xml' | |
- 'pom.xml' | |
- '.github/workflows/oracle-workflow-test.yml' | |
pull_request: | |
branches: | |
- main | |
- 1.* | |
- 2.* | |
paths: | |
- 'support/checkstyle/**' | |
- 'debezium-api/**' | |
- 'debezium-ddl-parser/**' | |
- 'debezium-assembly-descriptors/**' | |
- 'debezium-core/**' | |
- 'debezium-embedded/**' | |
- 'debezium-connector-oracle/**' | |
- 'debezium-parent/pom.xml' | |
- 'debezium-bom/pom.xml' | |
- 'pom.xml' | |
- '.github/workflows/oracle-workflow-test.yml' | |
jobs: | |
check: | |
name: Check Pull-Secrets | |
runs-on: ubuntu-latest | |
outputs: | |
HAS_QUAY_IO: ${{ steps.skip.outputs.HAS_QUAY_IO }} | |
steps: | |
- name: Checkout Action | |
uses: actions/checkout@v4 | |
- name: Check if author has Quay.io credentials | |
id: skip | |
env: | |
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }} | |
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }} | |
run: | | |
if [[ $QUAY_IO_USERNAME == '' ]] && [[ $QUAY_IO_PASSWORD == '' ]]; then | |
echo "HAS_QUAY_IO=false" >> $GITHUB_OUTPUT | |
else | |
echo "HAS_QUAY_IO=true" >> $GITHUB_OUTPUT | |
fi | |
test-connector: | |
name: Oracle Connector | |
runs-on: ubuntu-latest | |
needs: [check] | |
if: ${{ needs.check.outputs.HAS_QUAY_IO == 'true' }} | |
steps: | |
- name: Checkout Action | |
uses: actions/checkout@v4 | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Set up Java 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
# This workflow uses its own dependency cache rather than the main debezium workflow cache because | |
# we explicitly want to trigger this build on pushes separate from the other workflow. | |
- name: Cache Maven Repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
# refresh cache every month to avoid unlimited growth | |
# we do not explicitly base this on POM changes since we are explicitly targeting a single connector | |
# and the likelihood that lots of dependencies will change that impacts Oracle is significantly low | |
# compared to other parts of Debezium that rely on frameworks such as Quarkus. | |
key: maven-oracle-${{ steps.get-date.outputs.date }} | |
restore-keys: | | |
maven-oracle-${{ steps.get-date.outputs.date }} | |
- name: Build and Install Debezium dependencies | |
run: > | |
./mvnw clean install -pl debezium-bom,debezium-core,:debezium-ide-configs,:debezium-checkstyle,:debezium-revapi -am | |
-DskipTests=true | |
-DskipITs=true | |
-Dformat.formatter.goal=validate | |
-Dformat.imports.goal=check | |
-Dhttp.keepAlive=false | |
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 | |
- name: Build and Test Debezium Connector Oracle LogMiner | |
env: | |
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }} | |
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }} | |
run: > | |
./mvnw clean install -B -pl debezium-connector-oracle -am -Pinfinispan-buffer,oracle-docker,oracle-tests | |
-Ddocker.username="$QUAY_IO_USERNAME" | |
-Ddocker.password="$QUAY_IO_PASSWORD" | |
-Dformat.formatter.goal=validate | |
-Dformat.imports.goal=check | |
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn | |
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 | |
# A GitHub worker only has so much space and currently when this stage of the job runs concurrently with the | |
# "test-connector" stage, we are facing a worker out of space problem. To attempt to combat this issue, the | |
# REST extension tests will run sequentially after the "test-connector" stage has concluded. | |
test-rest-extension: | |
name: Oracle Connect REST Extension | |
runs-on: ubuntu-latest | |
needs: [check, test-connector] | |
if: ${{ needs.check.outputs.HAS_QUAY_IO == 'true' }} | |
steps: | |
- name: Checkout Action | |
uses: actions/checkout@v4 | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Set up Java 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
# This workflow uses its own dependency cache rather than the main debezium workflow cache because | |
# we explicitly want to trigger this build on pushes separate from the other workflow. | |
- name: Cache Maven Repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
# refresh cache every month to avoid unlimited growth | |
# we do not explicitly base this on POM changes since we are explicitly targeting a single connector | |
# and the likelihood that lots of dependencies will change that impacts Oracle is significantly low | |
# compared to other parts of Debezium that rely on frameworks such as Quarkus. | |
key: maven-oracle-${{ steps.get-date.outputs.date }} | |
restore-keys: | | |
maven-oracle-${{ steps.get-date.outputs.date }} | |
- name: Build and Install Debezium dependencies | |
run: > | |
./mvnw clean install -pl debezium-bom,debezium-core,:debezium-ide-configs,:debezium-checkstyle,:debezium-revapi -am | |
-DskipTests=true | |
-DskipITs=true | |
-Dformat.formatter.goal=validate | |
-Dformat.imports.goal=check | |
-Dhttp.keepAlive=false | |
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 | |
- name: Build and Test Debezium Connector Oracle REST Extension | |
env: | |
QUAY_IO_USERNAME: ${{ secrets.QUAY_IO_USERNAME }} | |
QUAY_IO_PASSWORD: ${{ secrets.QUAY_IO_PASSWORD }} | |
run: > | |
./mvnw clean install -B -pl debezium-connector-oracle -am -Poracle-tests,rest-assembly | |
-Dregistry.username="$QUAY_IO_USERNAME" | |
-Dregistry.password="$QUAY_IO_PASSWORD" | |
-Dformat.formatter.goal=validate | |
-Dformat.imports.goal=check | |
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn | |
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 |