Skip to content

Conversation

denscollo
Copy link
Contributor

Fixes #4081

Description

To execute their respective tests, all functional test pipelines test projects must be built and a bot needs to be published as a target. To do so, the pipelines follow a restore, build, publish, and test pattern.

The bot to be deployed project is being built twice, since the build step builds the whole solution, including both the bot to be deployed and the tests projects, and the publish step builds the bot to be deployed as well.

The changes introduced in this branch remove the build steps (including NuGet steps) from all functional test pipelines and reassign building to the publish and test steps for their specific projects, saving approximately 3 minutes on each pipeline execution.

This implementation works best for tests involving a relatively small percentage of projects from a given solution, otherwise, building the whole solution is better since the test task builds all projects found within the specified paths individually.

Specific Changes

  • To all functional test and adapter test pipelines:
    • Removes the ci-build-steps.yml template usage. This includes the removal of the Tag build with package version task as the variables involved are not present within these pipelines. We kept the Display env vars for developing/debugging purposes.
    • Adds build configuration parameters to the publish task.
    • Removes parameters --no-build and --no-restore from test task.
    • Adds missing EOL.
  • To botbuilder-dotnet-ci-functional-test-windows.yml
    • Updated project path to search exclusively from within the functional tests directory.

Testing

We tested the new implementation for all functional test and adapter tests (besides Twilio) pipelines.
The following images show execution comparisons between the current and the new implementations for one adapter test and a one functional test respectively:

  • Slack adapter:
    image

  • Windows functional test:
    image

@denscollo denscollo requested a review from a team as a code owner September 8, 2020 20:03
@denscollo denscollo requested a review from tomlm September 8, 2020 20:03
@mrivera-ms mrivera-ms merged commit dfea224 into microsoft:main Sep 11, 2020
@ceciliaavila ceciliaavila deleted the southworks/fix/functional-test-pipelines-build-twice branch September 11, 2020 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stop building twice in the dotnet functional test pipelines
3 participants