diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 40411b3b027..20a7a7c3335 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -244,7 +244,7 @@ Additional references: When updating your pull request, please **create new commits** and **don't rewrite the commits history**. This way it's very easy for the reviewers to see diff between iterations. If you rewrite the history in the pull request, review could be much slower. - The PR is likely to be squashed on merge to master by the *assignee*. + The PR is likely to be squash-merged to master by the *assignee*. 1. *Reviewers* are anyone who wants to contribute. They are responsible for ensuring the code: addresses the issue being fixed, does not create new issues (functional, performance, reliability, or security), and implements proper design. *Reviewers* should use the `Review changes` drop down to indicate they are done with their review. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5e6a9aa6694..454957f75fd 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -26,4 +26,3 @@ - [ ] N/A or can only be tested interactively - **OR** - [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting) - - [ ] [Add `[feature]` to your commit messages if the change is significant or affects feature tests](https://github.com/PowerShell/PowerShell/blob/master/docs/testing-guidelines/testing-guidelines.md#requesting-additional-tests-for-a-pr) diff --git a/docs/testing-guidelines/testing-guidelines.md b/docs/testing-guidelines/testing-guidelines.md index 75c3de63d78..b7b952f1a1a 100755 --- a/docs/testing-guidelines/testing-guidelines.md +++ b/docs/testing-guidelines/testing-guidelines.md @@ -55,9 +55,11 @@ The Pester framework allows `Describe` blocks to be tagged, and our CI system re One of the following tags must be used: * `CI` - this tag indicates that the tests in the `Describe` block will be executed as part of the CI/PR process -* `Feature` - tests with this tag will not be executed as part of the CI/PR process, but they will be executed on a daily basis as part of a `cron` driven build. - They indicate that the test will be validating more behavior, or will be using remote network resources (ex: package management tests) * `Scenario` - this tag indicates a larger scale test interacting with multiple areas of functionality and/or remote resources, these tests are also run daily. +* `Feature` - tests with this tag will not be executed as part of the CI/PR process, + but they will be executed on a daily basis as part of a `cron` driven build. + They indicate that the test will be validating more behavior, + or will be using remote network resources (ex: package management tests) Additionally, the tag: diff --git a/tools/ci.psm1 b/tools/ci.psm1 index f235b670d71..aab5d14f6e3 100644 --- a/tools/ci.psm1 +++ b/tools/ci.psm1 @@ -33,36 +33,7 @@ Function Test-DailyBuild { return $true } - - # if [feature] is in the commit message, - # Run Daily tests - $commitMessage = Get-CommitMessage - Write-log -message "commitMessage: $commitMessage" - - if($commitMessage -match '\[feature\]' -or $env:FORCE_FEATURE -eq 'True') - { - Set-BuildVariable -Name PS_DAILY_BUILD -Value $trueString - return $true - } - else - { - return $false - } -} - -# Returns the commit message for the current build -function Get-CommitMessage -{ - if ($env:BUILD_SOURCEVERSIONMESSAGE -match 'Merge\s*([0-9A-F]*)') - { - # We are in VSTS and have a commit ID in the Source Version Message - $commitId = $Matches[1] - return &git log --format=%B -n 1 $commitId - } - else - { - Write-Log "Unknown BUILD_SOURCEVERSIONMESSAGE format '$env:BUILD_SOURCEVERSIONMESSAGE'" -Verbose - } + return $false } # Sets a build variable @@ -127,7 +98,6 @@ function Invoke-CIBuild } Start-PSBuild -CrossGen -PSModuleRestore -Configuration 'Release' -CI -ReleaseTag $releaseTag - Save-PSOptions $options = (Get-PSOptions) @@ -165,7 +135,7 @@ function Invoke-CIInstall if ($env:TF_BUILD -and !$SkipUser.IsPresent) { # Generate new credential for CI (only) remoting tests. - Write-Log -Message "Creating account for remoting tests in CI." + Write-Verbose "Creating account for remoting tests in CI." -Verbose # Password $randomObj = [System.Random]::new() @@ -257,7 +227,7 @@ function Invoke-CITest $ExcludeTag = @('CI') } Default { - throw "Unknow TagSet: '$TagSet'" + throw "Unknown TagSet: '$TagSet'" } } @@ -530,17 +500,14 @@ function Invoke-CIFinish } } - if (Test-DailyBuild) - { - # produce win-arm and win-arm64 packages if it is a daily build - Start-PSBuild -Restore -Runtime win-arm -PSModuleRestore -Configuration 'Release' -ReleaseTag $releaseTag - $arm32Package = Start-PSPackage -Type zip -WindowsRuntime win-arm -ReleaseTag $releaseTag -SkipReleaseChecks - $artifacts.Add($arm32Package) - - Start-PSBuild -Restore -Runtime win-arm64 -PSModuleRestore -Configuration 'Release' -ReleaseTag $releaseTag - $arm64Package = Start-PSPackage -Type zip -WindowsRuntime win-arm64 -ReleaseTag $releaseTag -SkipReleaseChecks - $artifacts.Add($arm64Package) - } + # produce win-arm and win-arm64 packages if it is a daily build + Start-PSBuild -Restore -Runtime win-arm -PSModuleRestore -Configuration 'Release' -ReleaseTag $releaseTag + $arm32Package = Start-PSPackage -Type zip -WindowsRuntime win-arm -ReleaseTag $releaseTag -SkipReleaseChecks + $artifacts.Add($arm32Package) + + Start-PSBuild -Restore -Runtime win-arm64 -PSModuleRestore -Configuration 'Release' -ReleaseTag $releaseTag + $arm64Package = Start-PSPackage -Type zip -WindowsRuntime win-arm64 -ReleaseTag $releaseTag -SkipReleaseChecks + $artifacts.Add($arm64Package) $pushedAllArtifacts = $true $artifacts | ForEach-Object { @@ -610,12 +577,6 @@ function Invoke-LinuxTestsCore } # create packages if it is a full build $isFullBuild = Test-DailyBuild - if (!$isFullBuild) { - $noSudoPesterParam['ThrowOnFailure'] = $true - } - if ($hasRunFailingTestTag) { - $noSudoPesterParam['IncludeFailingTest'] = $true - } # Get the experimental feature names and the tests associated with them $ExperimentalFeatureTests = Get-ExperimentalFeatureTests