diff --git a/.github/workflows/upgrade_dm_via_tiup.yaml b/.github/workflows/upgrade_dm_via_tiup.yaml index 9f518587047..81da9efdd43 100644 --- a/.github/workflows/upgrade_dm_via_tiup.yaml +++ b/.github/workflows/upgrade_dm_via_tiup.yaml @@ -3,6 +3,9 @@ name: Upgrade DM via TiUP on: schedule: - cron: '0 17-23 * * *' # run at minute 0 every hour from 01:00 ~ 07:00 UTC+8 + pull_request: + branches: + - master workflow_dispatch: inputs: # TODO: use these inputs @@ -70,7 +73,7 @@ jobs: fail-fast: false matrix: previous_v2: - ["v2.0.0", "v2.0.1", "v2.0.3", "v2.0.4", "v2.0.5", "v2.0.6", "v2.0.7"] + ["v2.0.0", "v2.0.1", "v2.0.3", "v2.0.4", "v2.0.5", "v2.0.6", "v2.0.7", "v5.3.0"] steps: - name: Set up Go 1.16 diff --git a/Makefile b/Makefile index 4ab5e1d8346..46701d656ad 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ FAILPOINT_DISABLE := $$(echo $(FAILPOINT_DIR) | xargs $(FAILPOINT) disable >/dev RELEASE_VERSION = ifeq ($(RELEASE_VERSION),) - RELEASE_VERSION := v5.2.0-master + RELEASE_VERSION := v5.4.0-master release_version_regex := ^v5\..*$$ release_branch_regex := "^release-[0-9]\.[0-9].*$$|^HEAD$$|^.*/*tags/v[0-9]\.[0-9]\..*$$" ifneq ($(shell git rev-parse --abbrev-ref HEAD | egrep $(release_branch_regex)),) diff --git a/dm/tests/tiup/lib.sh b/dm/tests/tiup/lib.sh index 648df2791f2..5a2664dfa71 100755 --- a/dm/tests/tiup/lib.sh +++ b/dm/tests/tiup/lib.sh @@ -264,8 +264,28 @@ function run_dmctl_with_retry() { function ensure_start_relay() { # manually enable relay for source1 after v2.0.2 - if [[ "$PRE_VER" != "v2.0.0" ]] && [[ "$PRE_VER" != "v2.0.1" ]]; then - # always use CUR_VER, because we might use tiup mirror in previous steps. - run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01" "\"result\": true" 2 + if [[ "$PRE_VER" == "v2.0.0" ]] || [[ "$PRE_VER" == "v2.0.1" ]]; then + return fi + + dmctl_log="get-worker.txt" + # always use CUR_VER, because we might use tiup mirror in previous steps. + tiup dmctl:$CUR_VER --master-addr=master1:8261 operate-source show -s mysql-replica-01 >$dmctl_log 2>&1 + worker=$(grep "worker" $dmctl_log | awk -F'"' '{ print $4 }') + if [[ "$PRE_VER" == "v2.0.2" ]] || [[ "$PRE_VER" == "v2.0.3" ]] || [[ "$PRE_VER" == "v2.0.4" ]] || [[ "$PRE_VER" == "v2.0.5" ]] || [[ "$PRE_VER" == "v2.0.6" ]] || [[ "$PRE_VER" == "v2.0.7" ]]; then + run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01 $worker" "\"result\": true" 1 + else + run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01" "\"result\": true" 1 + fi +} + +function restart_relay() { + if [[ "$PRE_VER" == "v2.0.0" ]] || [[ "$PRE_VER" == "v2.0.1" ]]; then + return + fi + + run_dmctl_with_retry $CUR_VER "stop-relay -s mysql-replica-01" "\"result\": true" 1 + run_dmctl_with_retry $CUR_VER "query-status -s mysql-replica-01" "\"relayStatus\": null" 1 + run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01" "\"result\": true" 1 + run_dmctl_with_retry $CUR_VER "query-status -s mysql-replica-01" "relayCatchUpMaster" 1 } diff --git a/dm/tests/tiup/upgrade-from-v2.sh b/dm/tests/tiup/upgrade-from-v2.sh index 9bc246a4b04..95840f3374b 100755 --- a/dm/tests/tiup/upgrade-from-v2.sh +++ b/dm/tests/tiup/upgrade-from-v2.sh @@ -74,7 +74,7 @@ function upgrade_to_current_v2() { tiup dm upgrade --yes $CLUSTER_NAME $CUR_VER - ensure_start_relay + restart_relay } function migrate_in_v2() {