diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f57d7be6191..fa63fbaf7a2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -23,7 +23,7 @@ jobs: - bash: | echo "Check Title of Pull Request: #$(System.PullRequest.PullRequestNumber)" title=$(curl https://api.github.com/repos/$(Build.Repository.Name)/pulls/$(System.PullRequest.PullRequestNumber) | jq -r '.title') - if [ "$(System.PullRequest.TargetBranch)" != "release" ] && echo $title | grep -iqF hotfix; then + if [ "$(System.PullRequest.TargetBranch)" != "release" ] && echo $title | grep -iqF hotfix:; then echo "Hotfix PR should target release branch." exit 1 fi @@ -122,7 +122,7 @@ jobs: - task: UsePythonVersion@0 displayName: 'Use Python 3' inputs: - versionSpec: 3.x + versionSpec: 3.8 - task: BatchScript@1 inputs: @@ -685,7 +685,7 @@ jobs: distro: stretch Buster: deb_system: debian - distro: buster + distro: buster steps: - task: DownloadPipelineArtifact@1 displayName: 'Download Build Artifacts' @@ -739,7 +739,7 @@ jobs: distro: stretch Buster: deb_system: debian - distro: buster + distro: buster pool: vmImage: 'ubuntu-16.04' steps: diff --git a/doc/authoring_command_modules/README.md b/doc/authoring_command_modules/README.md index 5c9c4f804f0..df328accf66 100644 --- a/doc/authoring_command_modules/README.md +++ b/doc/authoring_command_modules/README.md @@ -213,12 +213,12 @@ History notes are auto-generated based on PR titles and descriptions starting fr Examples of customer-facing change PR title: ->[Storage] BREAKING CHANGE: az storage remove: Remove --auth-mode argument ->[ARM] Fix #10246: az resource tag crashes when the parameter --ids passed in is resource group ID +> [Storage] BREAKING CHANGE: az storage remove: Remove --auth-mode argument +> [ARM] Fix #10246: az resource tag crashes when the parameter --ids passed in is resource group ID An example of non-customer-facing change PR title: ->{Aladdin} Add help example for dns +> {Aladdin} Add help example for dns ### Format PR Description @@ -227,11 +227,14 @@ Please follow the instruction in the PR template to provide a description of the If you would like to write multiple history notes for one PR or overwrite the message in the PR title as a history note, please write the notes under `History Notes` section in the PR description, following the same format described above. The PR template already contains the history note template, just change it if needed. In this case, the PR title could be a summary of all the changes in this PR and will not be put into `HISTORY.rst` in our pipeline. The PR title still needs to start with `[Component Name]`. You can delete the `History Notes` section if not needed. ### Hotfix PR -Step 1: Create a hotfix branch based on release branch, then submit a PR to merge hotfix into release. -In this PR, the second part of the PR title should be `Hotfix`. If you have customer-facing changes, you need to manually modify `HISTORY.rst` to add history notes. The auto generated history notes for the next regular release will ignore the PR that contains `Hotfix`. -Step 2: Submit a PR to merge the release branch back into dev branch after the hotfix release. -Do **NOT** squash and merge this PR. After the PR gets approved by code owners, you should fast forward dev to release on your local machine and then push dev to upstream repository. +Step 1: Create a hotfix branch based on `release` branch, then submit a PR to merge the hotfix branch into `release`. + +In this PR, the second part of the PR title should be `Hotfix`. If you have customer-facing changes, you need to manually modify `HISTORY.rst` to add history notes. The auto-generated history notes for the next regular release will ignore the PR that contains `Hotfix`. An example title of hotfix change PR: ->{Packaging} Hotfix: Fix dependency error +> {Packaging} Hotfix: Fix dependency error + +Step 2: After the hotfix version is released, submit a PR to merge `release` branch back to `dev` (e.g. [#15505](https://github.com/Azure/azure-cli/pull/15505)). + +⚠ Do **NOT** squash merge this PR. After the PR gets approved by code owners, merge `release` to `dev` by creating a **merge commit** on your local machine, then push `dev` to upstream repository. The PR will automatically be marked as **Merged**. diff --git a/scripts/live_test/CLITest.yml b/scripts/live_test/CLITest.yml index 936421dd4b2..d9e8dfde15f 100644 --- a/scripts/live_test/CLITest.yml +++ b/scripts/live_test/CLITest.yml @@ -24,7 +24,7 @@ jobs: displayName: Live Test Python 3.8 timeoutInMinutes: 9999 strategy: - maxParallel: 20 + maxParallel: 5 matrix: acr: Target: acr @@ -324,7 +324,7 @@ jobs: echo "##vso[task.setvariable variable=Match]0" fi - task: UsePythonVersion@0 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: versionSpec: '3.8' addToPath: true @@ -399,34 +399,34 @@ jobs: git push origin $(USER_BRANCH) fi - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) - task: PublishTestResults@2 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: testResultsFiles: '/home/vsts/work/1/test_results.*.xml' testRunTitle: 'Azure CLI live test results of $(Target)' mergeTestResults: true # testResultsFormat: 'JUnit' - task: PublishBuildArtifacts@1 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: PathtoPublish: '/home/vsts/work/1/$(Target).report.sequential.json' ArtifactName: '$(Target).report.sequential.json' publishLocation: 'Container' - task: PublishBuildArtifacts@1 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: PathtoPublish: '/home/vsts/work/1/$(Target).report.sequential.html' ArtifactName: '$(Target).report.sequential.html' publishLocation: 'Container' - task: PublishBuildArtifacts@1 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: PathtoPublish: '/home/vsts/work/1/$(Target).report.parallel.json' ArtifactName: '$(Target).report.parallel.json' publishLocation: 'Container' - task: PublishBuildArtifacts@1 - condition: eq(variables.Match, '1') + condition: and(succeededOrFailed(), eq(variables.Match, '1')) inputs: PathtoPublish: '/home/vsts/work/1/$(Target).report.parallel.html' ArtifactName: '$(Target).report.parallel.html' diff --git a/scripts/live_test/HISTORY.rst b/scripts/live_test/HISTORY.rst index f324e7edaf1..fa54a49740c 100644 --- a/scripts/live_test/HISTORY.rst +++ b/scripts/live_test/HISTORY.rst @@ -3,18 +3,26 @@ Release History =============== -0.6.0 +0.7.0 (10/23/2020) ++++++ + +* Improve index.html. Move report link inside table. Display number of tests in link name. +* Fix a small problem of job condition. + +0.6.0 (10/19/2020) +++++++ + * Remove module iotcentral. * Support testing Azure CLI extensions. -0.5.0 +0.5.0 (10/10/2020) ++++++ + * Update index.html design. * Add module data table. * Add retry for CLI commands. -0.4.0 +0.4.0 (9/27/2020) ++++++ * Update pipeline run title. @@ -22,14 +30,14 @@ Release History * Design a unique representation of a pipeline run. * Make storage account container public. -0.3.0 +0.3.0 (9/14/2020) ++++++ * Support upgrading API version in pipeline. * Fix a tiny DB bug. * Fix pipe not close problem. -0.2.0 +0.2.0 (9/4/2020) ++++++ * Fix a tiny bug of sequential run. @@ -37,7 +45,7 @@ Release History * Fix a bug of module name sorting. * Update notification email format. -0.1.0 +0.1.0 (8/24/2020) ++++++ * Remove schedule in debug mode. diff --git a/scripts/live_test/generate_index.py b/scripts/live_test/generate_index.py index 991b841e3ee..9654ea4cd86 100644 --- a/scripts/live_test/generate_index.py +++ b/scripts/live_test/generate_index.py @@ -8,6 +8,7 @@ """ import traceback import os +import re import requests import xml.etree.ElementTree as ET @@ -20,6 +21,7 @@ def generate(container, container_url, testdata, USER_REPO, USER_BRANCH, COMMIT_ :return: """ print('Enter generate()') + # [{'name': name, 'url': url}] data = [] url = container_url + '?restype=container&comp=list' content = requests.get(url).content @@ -100,6 +102,7 @@ def render(data, container, container_url, testdata, USER_REPO, USER_BRANCH, COM
Reports
- """ - - for item in data: - name = item['name'] - url = item['url'] - content += """ - {}Reports
+ # """ + # + # for item in data: + # name = item['name'] + # url = item['url'] + # content += """ + # {}