elastic / apm-agent-dotnet

https://www.elastic.co/guide/en/apm/agent/dotnet/current/index.html
Apache License 2.0
573 stars 205 forks source link

Merge specialized PR workflows back into one configuration file #2363

Closed Mpdreamz closed 1 month ago

Mpdreamz commented 1 month ago

This refactors our PR builds so that we move back into a single workflow.

This PR removes the specialized -docs.yml workflows while retaining the fast path for only doc changes.

A follow up PR will also remove the companion -reporter.yml workflows.

This PR also rearranges our job dependencies a tad to be a tad more ecologically friendly 🌴 by ensuring we don't fail on formatting changes first before kicking off the heavier integration tests. We can extend this later with more build and linting fast failures.

image
Mpdreamz commented 1 month ago

@v1v hear you on the if conditions and the path ignore being more native. It looks worse than it is most are only at the single job level, only for required jobs they need to be on each step to short circuit properly. Hoping to refactor these to a composite action requiring only a single if: in a follow up PR.

Through this I also hope to minimize the heavier tests we run on PR's e.g only run azure/iis/profiler tests on PR's if they have relevant changes while still always running them on main. That gets more complex quickly with the -<changeset>.yml pattern.

Mpdreamz commented 1 month ago

https://github.com/elastic/apm-agent-dotnet/pull/2365 relates to this to further simplify our CI workflows configuration.

It removes the test composite action and a third party dependency test reporting workflow.

Mpdreamz commented 1 month ago

Thanks @v1v the main reason was that I also wanted to make the azure tests conditional on change sets while still only being run after lint/build.

It could be a separate workflow being triggered by another: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow