diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml deleted file mode 100644 index dbc85f6ee5b..00000000000 --- a/.github/workflows/daily.yml +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT license. - -name: PowerShell Daily -on: - workflow_dispatch: - schedule: - # At 13:00 UTC every day. - - cron: '0 13 * * *' - -defaults: - run: - shell: pwsh - -env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - -permissions: - contents: read - -jobs: - update-dotnet-preview: - permissions: - contents: write # for peter-evans/create-pull-request to create branch - pull-requests: write # for peter-evans/create-pull-request to create a PR - name: Update .NET preview - timeout-minutes: 15 - runs-on: windows-latest - if: github.repository == 'PowerShell/PowerShell' - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Sync tags - run: | - git fetch --prune --unshallow --tags - - name: Execute Update .NET script - run: | - Import-Module ./.github/workflows/GHWorkflowHelper - $currentVersion = (Get-Content .\global.json | ConvertFrom-Json).sdk.version - Set-GWVariable -Name OLD_VERSION -Value $currentVersion - - ./tools/UpdateDotnetRuntime.ps1 -UpdateMSIPackaging - $newVersion = (Get-Content .\global.json | ConvertFrom-Json).sdk.version - Set-GWVariable -Name NEW_VERSION -Value $newVersion - - if ($currentVersion -ne $newVersion) { - Set-GWVariable -Name CREATE_PR -Value 'true' - } - - name: Microsoft Teams Notifier - uses: skitionek/notify-microsoft-teams@master - if: failure() - with: - webhook_url: ${{ secrets.PS_BUILD_TEAMS_CHANNEL }} - overwrite: "{title: `Failure in .github/daily.yml updating .NET build. Look at ${workflow_link}`}" - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - id: cpr - if: env.CREATE_PR == 'true' - with: - commit-message: "Update .NET SDK version from `${{ env.OLD_VERSION }}` to `${{ env.NEW_VERSION }}`" - title: "Update .NET SDK version from `${{ env.OLD_VERSION }}` to `${{ env.NEW_VERSION }}`" - base: master - branch: dotnet_update - update-tpn: - permissions: - contents: write # for peter-evans/create-pull-request to create branch - pull-requests: write # for peter-evans/create-pull-request to create a PR - name: Update Notices File - timeout-minutes: 15 - runs-on: windows-latest - if: github.repository == 'PowerShell/PowerShell' - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Update Notices file - run: | - Invoke-WebRequest -Uri https://aka.ms/pwsh-daily-tpn -OutFile ./ThirdPartyNotices.txt - - name: Capture Git Status - run: | - git status --short - - name: Check if we need to create a PR - run: | - $ErrorActionPreference = 'continue' - git diff --quiet ThirdPartyNotices.txt - $exitCode = $LASTEXITCODE - Write-Verbose -Message "Exit code: $exitCode" -Verbose - if ($LASTEXITCODE -ne 0) { - Import-Module ./.github/workflows/GHWorkflowHelper - Set-GWVariable -Name CREATE_PR -Value 'true' - } else { - Write-Verbose "No difference found. Not creating a PR." -Verbose - } - exit 0 - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - id: cprtpn - if: env.CREATE_PR == 'true' - with: - commit-message: "Update to the latest NOTICES file" - committer: GitHub - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - title: "Update to the latest NOTICES file" - reviewers: travisez13 - base: master - draft: false - branch: update-cgmanifest - update-cgmanifest: - permissions: - contents: write # for peter-evans/create-pull-request to create branch - pull-requests: write # for peter-evans/create-pull-request to create a PR - name: Update cgmanifest - timeout-minutes: 15 - runs-on: windows-latest - if: github.repository == 'PowerShell/PowerShell' - env: - CGMANIFEST_PATH: '' - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Sync tags - run: | - git fetch --prune --unshallow --tags - - name: Install Ships provider to deal with project.assets.json - run: | - Install-Module -Name dotnet.project.assets -force - - name: Bootstrap - run: | - Import-Module ./build.psm1 - Start-PSBootStrap - - name: Verify cgmanifest is up to date - run: | - Import-Module ./build.psm1 - Find-Dotnet - ./tools/findMissingNotices.ps1 -Fix - - name: Upload cgmanifest - uses: actions/upload-artifact@v3 - if: always() && env.CGMANIFEST_PATH != '' - with: - name: cgmanifest - path: ${{ env.CGMANIFEST_PATH }} - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - id: cprcgmanifest - if: env.CGMANIFEST_PATH != '' - with: - commit-message: "Update the cgmanifest" - committer: GitHub - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - title: "Update the cgmanifest" - reviewers: travisez13 - base: master - draft: false - branch: update-cgmanifest diff --git a/.github/workflows/exp-json.yml b/.github/workflows/exp-json.yml deleted file mode 100644 index 4d3fbfecc05..00000000000 --- a/.github/workflows/exp-json.yml +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT license. - -name: PowerShell Experimental Features Json Update -on: - workflow_dispatch: - schedule: - # At 13:00 UTC every day. - - cron: '0 13 * * *' - -defaults: - run: - shell: pwsh - -env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - POWERSHELL_TELEMETRY_OPTOUT: 1 - -permissions: - contents: read - -jobs: - create-expjson: - strategy: - matrix: - os: [windows-latest, ubuntu-latest] - timeout-minutes: 15 - runs-on: ${{ matrix.os }} - env: - OS_TITLE: ${{ matrix.os }} - if: github.repository == 'PowerShell/PowerShell' - name: Update experimental features json - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: '0' - - name: Create experimental features file - run: | - Import-Module ./build.psm1 -Force - Start-PSBootstrap - Start-PSBuild -Clean -PSModuleRestore - $builtPwsh = Get-PSOutput - - Write-Verbose -Verbose "PWSH path: $builtPwsh" - - $getExpFeatureJsonScript = @' - [System.Collections.ArrayList] $expFeatures = Get-ExperimentalFeature | Where-Object Name -NE PS7DscSupport | ForEach-Object -MemberName Name - - # Make sure ExperimentalFeatures from modules in PSHome are added - # https://github.com/PowerShell/PowerShell/issues/10550 - $ExperimentalFeaturesFromGalleryModulesInPSHome = @() - $ExperimentalFeaturesFromGalleryModulesInPSHome | ForEach-Object { - if (!$expFeatures.Contains($_)) { - $null = $expFeatures.Add($_) - } - } - - ConvertTo-Json $expFeatures - '@ - - $expFeaturesJson = & $builtPwsh -c $getExpFeatureJsonScript - $osname = $env:OS_TITLE -like 'windows*' ? 'windows' : 'linux' - $fileNamePrefix = "experimental-feature-$osname" - $newFileName = "${fileNamePrefix}-new.json" - - Write-Verbose -Verbose 'Experimental features found' - $expFeaturesJson | Out-String | Write-Verbose -Verbose - $expFeaturesJson | Out-File $newFileName -Force - - - name: Upload experimental features windows - uses: actions/upload-artifact@v3 - with: - name: experimentalJson - path: experimental-feature-*-new.json - - compare-expjson-files: - permissions: - contents: write # for peter-evans/create-pull-request to create branch - pull-requests: write # for peter-evans/create-pull-request to create a PR - runs-on: ubuntu-latest - name: Compare experimental json files and create PR - needs: create-expjson - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: '0' - - name: Download artifacts - uses: actions/download-artifact@v3 - with: - name: experimentalJson - - name: Compare json files - run: | - Import-Module ./.github/workflows/GHWorkflowHelper -Force - - function ShouldCreatePR($currentFile, $newFile) { - if (Test-Path $currentFile) { - $currentExpFeatures = Get-Content $currentFile -Raw | ConvertFrom-Json - $newExpFeatures = Get-Content $newFile -Raw | ConvertFrom-Json - - if (-not (Compare-Object $currentExpFeatures $newExpFeatures)) { - Write-Verbose -Verbose "No changes to experimental features json file" - return $false - } - } - - return $true - } - - $currentWinFile = "experimental-feature-windows.json" - $currentLinuxFile = "experimental-feature-linux.json" - $newWinFile = "experimental-feature-windows-new.json" - $newLinuxFile = "experimental-feature-linux-new.json" - - $createPrWin = ShouldCreatePR $currentWinFile $newWinFile - Write-Verbose -Verbose "Create PR Windows == $createPrWin" - - $createPrLinux = ShouldCreatePR $currentLinuxFile $newLinuxFile - Write-Verbose -Verbose "Create PR Linux == $createPrLinux" - - $createPr = $createPrWin -or $createPrLinux - Write-Verbose -Verbose "Create PR == $createPr" - - if ($createPrWin) { - Move-Item $newWinFile $currentWinFile -Verbose -Force - } - else { - Remove-Item $newWinFile -Verbose - } - - if ($createPrLinux) { - Move-Item $newLinuxFile $currentLinuxFile -Verbose -Force - } - else { - Remove-Item $newLinuxFile -Verbose - } - - Set-GWVariable -Name CREATE_EXP_JSON_PR -Value $createPR - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - id: cpr - if: env.CREATE_EXP_JSON_PR == 'true' - with: - commit-message: "Update experimental-feature-windows.json" - title: "Update experimental-feature json files" - base: master - branch: expjson_update_windows