Closed raman-m closed 5 months ago
The 2nd part will address aspects of:
The 2nd part is slated for delivery in the next release. The current objective of #2034 has been met, and there is no time for further in-depth improvements. Delivery is anticipated for May/June '24, in the subsequent release.
Fixes #2034
2034
1st Part
This is the 1st part, the most substantial, of changes aimed at accelerating CI builds. The overall duration for PR workflows has been reduced by 3-4 times, from 12-13 minutes to 3-4 minutes. The actual duration varies based on CircleCI server load (daytime, working hours, nighttime).
View the latest CI builds here: raman-m/2034 and note the Duration column❗
2nd Part
The 2nd part will address aspects of:
Proposed Changes
Should_timeout_per_default_after_90_seconds
introduced in #1834. Refer to https://github.com/ThreeMammals/Ocelot/pull/2045/commits/ae085c40e9429378a563cecedb3489d90837ea1fdotnet test --framework net8.0
command for PR workflows, enabling builds with the .NET 8 SDK only for pull requests (including all commits for feature & develop branches). Refer to https://github.com/ThreeMammals/Ocelot/pull/2045/commits/c8bbbd224f392f89d5e70e228874f7af6c25c068, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/bb244eb2ac6d030486234eb4c6ccbfbc26199ea6build.cake
script. Refer to https://github.com/ThreeMammals/Ocelot/pull/2045/commits/e008bb7cf15a8a70ce99d680546d4051e297031f, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/db3de59099fe52e92679f6d34383f47fcf27302f, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/ae3f238732611c8c80755198300a8bc86abdff8d, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/8bc9907661b9273b091ba0f9bcde303be9b1c3b6.Cake.Coveralls
package. I'm optimistic about finding the repository Maintainer or team lead. :grin:Ocelot.sln
and instead created a newOcelot.Release.sln
(which includes all projects) andOcelot.Samples.sln
(which contains only sample projects). This modification shaved off 1-5 seconds, although the exact duration change is subtle. It appears to be beneficial. Refer to https://github.com/ThreeMammals/Ocelot/pull/2045/commits/8dab1c0ec44194bf9f229d851b384f17e0bca8c5, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/6ecc11f38111686b1f2fbd03553ee402189cda87, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/32da44f5a27b66e7149d0981055de976eea1cc34, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/524b7530a7c4549f81f12aac839a0c1b87032243, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/6983f2a6a54b83da18d88ed90a16316594658a93, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/e7c02b92ba8138bc94f38a952c6bf3342878e360, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/bdb2847edc876900809061b3683ab9620c7d18fb, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/5592ad988e8e58662dfc677527c188106ce56a32, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/8ccfecdefbe942235f7af3795956480fbed8667b, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/d0d2eec9d0dd375ea5e9c98b473cd1653309617f, https://github.com/ThreeMammals/Ocelot/pull/2045/commits/0f382e0994fe70b6291313c79ce81539f160add6.circleci/config.yml
. Switched offblock_workflow
job (see https://github.com/ThreeMammals/Ocelot/pull/2045/commits/88dd110a79f56c7e5638705b90aa1d21f8443c0a) and it's strange that this job was ran for PR workflow, I found commit https://github.com/ThreeMammals/Ocelot/commit/fd7c6d7a5b7326af5c09845f176cb498fe4bc3be in git history in which Tom wanted to block multiple concurrent releases a few years ago. So it is not required, and now we have only one workflow running for PR commits, see raman-m/2034 build GitHub checks. So we have only oneci/circleci: build
check now. This is a little but awesome improvement.resource_class
job option withmedium+
value forbuild
job. The old default value wasmedium
implicitly for Docker executor. So, this change won extra 3-5 seconds when doingCompile
task. But in future it will give more benefits when tests will be parallelized. So,medium+
means 3 vCPU andmedium
means 2 vCPU. See commit https://github.com/ThreeMammals/Ocelot/pull/2045/commits/f0c38f8f21c244b453b85c7df189bc7fdeced5f0.editorconfig
was outdated due to multiple Visual Studio releases since its addition (see commit 6469e44 on GitHub). Addressed most critical warnings. Refer to commits 94ce8c9 and dd2f27b for disabled C# 12 features, which were incorrectly flagged for C# 11net7.0
and C# 10net6.0
. The absence of such warnings previously may be attributed to the outdated.editorconfig
not aligning with the latest VS version. The Editor Config has been updated, activating and resolving these warnings.CS0618
warning for testing projects, as warnings aboutObsolete
definitions are unnecessary there. However, for thesrc
folder projects, this warning will remain until code refactoring is completed. See commit fa29b63 and e5b5c5f for details.restore
andbuild
step flags from thedotnet test
command for the unit testing project, as they were redundant given theCompile
task precedes the testing one. This modification saved approximately 10 seconds (see commit fa7e1ec).