Skip to content

Do not add the feature in UnsupportedFeatures field if there are no objects for it in the JSON report #6901

Do not add the feature in UnsupportedFeatures field if there are no objects for it in the JSON report

Do not add the feature in UnsupportedFeatures field if there are no objects for it in the JSON report #6901

Workflow file for this run

name: "MySQL: Migration Tests"
on:
push:
branches: ['main', '*.*-dev', '*.*.*-dev']
pull_request:
branches: ['main']
jobs:
run-mysql-migration-tests:
strategy:
matrix:
version: [2024.2.0.0-b145, 2.20.8.0-b53, 2024.1.3.1-b8, 2.23.1.0-b220]
BETA_FAST_DATA_EXPORT: [0, 1]
env:
BETA_FAST_DATA_EXPORT: ${{ matrix.BETA_FAST_DATA_EXPORT }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
# https://github.com/actions/setup-java
with:
distribution: "temurin"
java-version: "17"
check-latest: true
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Install python3 and psycopg2
run: |
sudo apt install -y python3
sudo apt install -y libpq-dev
sudo apt install python3-psycopg2
- name: Run installer script to setup voyager
run: |
yes | ./installer_scripts/install-yb-voyager --install-from-local-source
env:
ON_INSTALLER_ERROR_OUTPUT_LOG: Y
DEBEZIUM_VERSION: aneesh_ff-fb-remove
DEBEZIUM_RELEASE_TAG: voyager-debezium
- name: Start MySQL
run: |
sudo /etc/init.d/mysql start
sleep 10
- name: Test MySQL connection
run: |
mysql -uroot -proot -e 'select version();'
- name: Create MySQL user
run: |
./migtests/scripts/mysql/create_mysql_user
- name: Start YugabyteDB cluster
run: |
docker run -d --name yugabytedb \
-p7000:7000 -p9000:9000 -p15433:15433 -p5433:5433 -p9042:9042 \
yugabytedb/yugabyte:${{ matrix.version }} \
bin/yugabyted start --background=false --ui=false
sleep 20
- name: Test YugabyteDB connection
run: |
psql "postgresql://yugabyte:@127.0.0.1:5433/yugabyte" -c "SELECT version();"
- name: Create YugabyteDB user
run: |
./migtests/scripts/yugabytedb/create_yb_user
- name: Enable yb-tserver-n1 name resolution
run: |
echo "127.0.0.1 yb-tserver-n1" | sudo tee -a /etc/hosts
psql "postgresql://yugabyte@yb-tserver-n1:5433/yugabyte" -c "SELECT version();"
- name: "TEST: mysql-table-list-flags-test (table-list and exclude-table-list)"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/table-list-flags-tests
- name: "TEST: mysql-table-list-file-path-test (table-list-file-path and exclude-table-list-file-path)"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/table-list-flags-tests env-file-path-flags.sh
- name: "TEST: mysql-sakila"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/sakila
- name: "TEST: mysql-datatypes"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/datatypes
- name: "TEST: mysql-constraints"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/constraints
- name: "TEST: mysql-case-indexes"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/indexes
- name: "TEST: mysql-functions"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/functions
- name: "TEST: mysql-case-sequences"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/sequences
- name: "TEST: mysql-triggers-procedures"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/triggers-procedures
- name: "TEST: mysql-case-views"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/views
- name: "TEST: mysql-partitions"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/partitions
- name: "TEST: mysql-sample-chinook"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/chinook
- name: "TEST: mysql-misc-tests"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/misc-tests
- name: "TEST: mysql-case-sensitivity-reserved-words"
if: ${{ !cancelled() }}
run: migtests/scripts/run-test.sh mysql/case-sensitivity-reserved-words
# Placeholder for now so that a basic test can run
- name: Create the live migration user
run: |
mysql -uroot -proot -e 'GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'ybvoyager'@'127.0.0.1';'
- name: "TEST: mysql-live-migration-test"
if: ${{ !cancelled() }}
run: migtests/scripts/live-migration-run-test.sh mysql/basic-live-test