Another downside of merging build and test is: There are two many logs when testing fails. (Logs of building is too large)
Best, Jingsong On Mon, Aug 21, 2023 at 11:18 AM yu zelin <[email protected]> wrote: > > 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 > >>> > >> >
