[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Testing] Splitting pre-commits from post-commit test targets

I wanted to give a heads-up to a small optimization that I hope to make to our Jenkins test targets. Currently our post-commit test jobs also redundantly run pre-commit tests. I'd like to remove redundant execution to get a faster post-commit test signal. See: https://github.com/apache/beam/pull/7073 

In Jenkins we run pre-commits separately from post-commits, and in all cases when a language post-commit suite runs, the pre-commit is also run in a separate job (in PR, on merge, cron schedule). So, it makes sense to separate the targets. This will free up resources and give a faster signal on post-commit suites as they are doing less work.

From a quick test, this shaves 27 mins off of Python post-commits, 10 mins from Java, and ~1 minute from Go.

The only negative impact I could imagine is if during local development you were running `./gradlew :langPostCommit` as a shortcut to run all tests. Now, in order to also run tests from pre-commit, you'd need to specify it separately: `./gradlew :langPreCommit :langPostCommit`

Got feedback?