azurepipelines/e2e_test/templates/e2e_test_run.yaml (159 lines of code) (raw):

# Template: Template for running E2E Tests against the Virtual Machines parameters: - name: distroName type: string - name: device_id_under_test type: string steps: - task: PipAuthenticate@1 displayName: 'Pip Authenticate' inputs: artifactFeeds: 'adu-linux-client/ADUTestFeed' - script: | mkdir testresults displayName: Creating the test results directory continueOnError: False workingDirectory: $(E2E_WORKING_DIR) - task: UsePythonVersion@0 displayName: Set the python version to Python 3.10 inputs: versionSpec: 3.10 - script: | python -m pip install -r scenarios/testingtoolkit/requirements.txt workingDirectory: $(E2E_WORKING_DIR) displayName: Installing the toolkit dependencies continueOnError: False - task: PythonScript@0 displayName: Run script to add the device to the ADU group continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/add_device_to_adu_group.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to test apt-deployment continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/apt_deployment.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to test apt-deployment fails continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/bad_apt_deployment.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to test diagnostics continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/diagnostics.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to test mcu continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/Multi-Component-Update.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to test bundle-update continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/Bundle-update.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - task: PythonScript@0 displayName: Run script to clean up the device continueOnError: True inputs: scriptSource: "filePath" scriptPath: "$(E2E_WORKING_DIR)/scenarios/test_runner/delete_device.py" workingDirectory: $(E2E_WORKING_DIR) env: IOTHUB_URL: $(IOTHUB_URL) IOTHUB_CONNECTION_STRING: $(IOTHUB_CONNECTION_STRING) ADU_ENDPOINT: $(ADU_ENDPOINT) ADU_INSTANCE_ID: $(ADU_INSTANCE_ID) AAD_REGISTRAR_CLIENT_ID: $(AAD_REGISTRAR_CLIENT_ID) AAD_REGISTRAR_TENANT_ID: $(AAD_REGISTRAR_TENANT_ID) AAD_CLIENT_SECRET: $(AAD_CLIENT_SECRET) DISTRONAME: ${{ parameters.distroName }} DEVICEID: ${{ parameters.device_id_under_test }} - script: | mkdir -p $(Build.ArtifactStagingDirectory)/testresults/ cp -R ./testresults/* $(Build.ArtifactStagingDirectory)/testresults/ displayName: Copy terraform state (vm) workingDirectory: $(E2E_WORKING_DIR) - task: 1ES.PublishPipelineArtifact@1 inputs: targetPath: "$(Build.ArtifactStagingDirectory)/testresults/" artifactName: "TestResults_${{parameters.device_id_under_test}}" publishLocation: "pipeline" - task: PublishTestResults@2 inputs: testRunner: JUnit testResultsFiles: "$(E2E_WORKING_DIR)/testresults/*.xml" failTaskOnFailedTests: false testRunTitle: ${{parameters.device_id_under_test}}