From a5d6c2fb51f34debdc98d927b5ffaa7895023e7b Mon Sep 17 00:00:00 2001 From: lvyanquan Date: Thu, 17 Oct 2024 20:16:28 +0800 Subject: [PATCH] [FLINK-36564][ci] Running CI in random timezone to expose more time related bugs. --- .github/workflows/flink_cdc_base.yml | 5 ++++- .github/workflows/utils.sh | 31 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/utils.sh diff --git a/.github/workflows/flink_cdc_base.yml b/.github/workflows/flink_cdc_base.yml index 74260ef1404..6e1553041a3 100644 --- a/.github/workflows/flink_cdc_base.yml +++ b/.github/workflows/flink_cdc_base.yml @@ -138,6 +138,9 @@ jobs: - name: Compile and test timeout-minutes: 60 run: | + . .github/workflows/utils.sh + jvm_timezone=$(random_timezone) + echo "JVM timezone is set to $jvm_timezone" set -o pipefail case ${{ inputs.module }} in @@ -205,7 +208,7 @@ jobs: build_maven_parameter="${build_maven_parameter:+$build_maven_parameter }${{ inputs.custom-maven-parameter }}" - mvn --no-snapshot-updates -B -DskipTests -pl $compile_modules -am install && mvn --no-snapshot-updates -B $build_maven_parameter -pl $modules verify + mvn --no-snapshot-updates -B -DskipTests -pl $compile_modules -am install && mvn --no-snapshot-updates -B $build_maven_parameter -pl $modules verify -Duser.timezone=$jvm_timezone - name: Print JVM thread dumps when cancelled if: ${{ failure() }} diff --git a/.github/workflows/utils.sh b/.github/workflows/utils.sh new file mode 100644 index 00000000000..a188310215e --- /dev/null +++ b/.github/workflows/utils.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +function random_timezone() { + local rnd=$(expr $RANDOM % 25) + local hh=$(expr $rnd / 2) + local mm=$(expr $rnd % 2 \* 3)"0" + local sgn=$(expr $RANDOM % 2) + if [ $sgn -eq 0 ] + then + echo "GMT+$hh:$mm" + else + echo "GMT-$hh:$mm" + fi +} \ No newline at end of file