I agree with @Liugddx. I think the Flink CDC related codes can be a separated 
test.

Best, 
Zelin Yu

> 2023年8月21日 10:09,Guangdong Liu <[email protected]> 写道:
> 
> We can disassemble the test case, it is estimated that it will be faster.
> 
> --
> 
> Best Regards
> 
> ------------
> 
> Liugddx
> [email protected]
> 
> 
> yu zelin <[email protected]> 于2023年8月21日周一 10:07写道:
> 
>> Hi, all,
>> 
>> Currently, we can set `timeout-minutes: 60` to longer time as a temporary
>> solution.
>> 
>> Best,
>> Zelin Yu
>> 
>> On Mon, Aug 21, 2023 at 9:49 AM Jingsong Li <[email protected]>
>> wrote:
>> 
>>> Thanks Zhuoyu for your driving.
>>> 
>>> Currently, Frequent timeout because we merge build and test into one
>>> stage. Github testing timeout 1H for one stage. So there are lots of
>>> timeout now.
>>> 
>>> But if we can optimize testing time is better.
>>> 
>>> Thanks for your idea.
>>> 
>>> Maybe we can list all tests to show how to separate them.
>>> 
>>> Best,
>>> Jingsong
>>> 
>>> On Sun, Aug 20, 2023 at 7:39 PM 陈卓宇 <[email protected]> wrote:
>>>> 
>>>> Subject: Optimizing UTCase and ITCase Flink Action Execution Time
>>>> 
>>>> Hi devs,
>>>> 
>>>> I've observed that the average execution time for our UTCase and ITCase
>>>> Flink Action has approached the critical threshold of 1 hour. Upon
>>>> reviewing, I found that this action corresponds to
>>>> `.github/workflows/utitcase-flink.yml`. The core execution command is:
>>>> ```
>>>> mvn clean install -pl 'org.apache.paimon:paimon-flink-common'
>>>> -Duser.timezone=$jvm_timezone
>>>> ```
>>>> This command runs UT and IT tests for `paimon-flink-common`.
>>>> 
>>>> To optimize this, I've considered a few strategies:
>>>> 
>>>> 1. **Splitting IT Tests by Functionality or Module**: By segmenting the
>>> IT
>>>> tests, we can define separate steps or jobs for each module within
>> GitHub
>>>> Actions.
>>>> 
>>>> 2. **Utilizing Maven Profiles**: We can define different Maven Profiles
>>> in
>>>> the `pom.xml`, where each profile corresponds to a set of integration
>>>> tests. Subsequently, in GitHub Actions, we can define a distinct step
>> or
>>>> job for each profile. For instance, in `pom.xml`:
>>>> ```xml
>>>> <profiles>
>>>>    <profile>
>>>>        <id>ITGroup1</id>
>>>>        <build>
>>>>            <plugins>
>>>>                <plugin>
>>>>                    <groupId>org.apache.maven.plugins</groupId>
>>>>                    <artifactId>maven-failsafe-plugin</artifactId>
>>>>                    <configuration>
>>>>                        <includes>
>>>>                            <include>**/ITGroup1*.java</include>
>>>>                        </includes>
>>>>                    </configuration>
>>>>                </plugin>
>>>>            </plugins>
>>>>        </build>
>>>>    </profile>
>>>>    <!-- ... other profiles for other IT groups ... -->
>>>> </profiles>
>>>> ```
>>>> And then, in the GitHub Actions configuration, we can define a step for
>>>> each profile:
>>>> ```yaml
>>>> - name: Run IT Group 1
>>>>  run: mvn -PITGroup1 verify
>>>> ```
>>>> 
>>>> I'd love to hear if anyone has other ideas or better approaches to this
>>>> issue. Let's collaborate and discuss the best way forward.
>>>> 
>>>> Best regards,
>>>> ZhuoyuChen
>>> 
>> 

Reply via email to