Promote to live #329
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Promote to live | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| track: | |
| description: 'Track' | |
| required: true | |
| default: 'stg' | |
| skip-canary: | |
| type: boolean | |
| description: Skip Canary | |
| permissions: | |
| contents: write # to write update to repo | |
| jobs: | |
| promote: | |
| name: Promote staging version to live | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Generate dalamud-distrib version file | |
| shell: powershell | |
| env: | |
| DALAMUD_TRACK: ${{ github.event.inputs.track }} | |
| SKIP_CANARY: ${{ github.event.inputs.skip-canary }} | |
| run: | | |
| $trackName = $env:DALAMUD_TRACK | |
| $skipCanary = $env:SKIP_CANARY | |
| Expand-Archive -Path ".\${trackName}\latest.zip" -DestinationPath .\scratch | |
| $dllBytes = [System.IO.File]::ReadAllBytes("$(Get-Location)\scratch\Dalamud.dll") | |
| $assembly = [System.Reflection.Assembly]::Load($dllBytes) | |
| $newVersion = $assembly.GetName().Version.ToString() | |
| Remove-Item -Force -Recurse .\scratch | |
| $versionData = Get-Content .\version | ConvertFrom-Json | |
| $oldVersion = $versionData.AssemblyVersion | |
| if ($oldVersion -eq $newVersion) { | |
| Write-Host "Nothing to promote" | |
| } elseif ($skipCanary -eq 'true') { | |
| Copy-Item -Force -Path ".\${trackName}\latest.zip" -Destination .\latest.zip | |
| $versionData.AssemblyVersion = $newVersion | |
| $versionText = $versionData | ConvertTo-Json -Compress | |
| [System.IO.File]::WriteAllLines(".\version", $versionText) | |
| Write-Host "Promotion OK with skip canary" | |
| } else { | |
| Copy-Item -Force -Path ".\${trackName}\latest.zip" -Destination .\canary\latest.zip | |
| $versionData.AssemblyVersion = $newVersion | |
| $versionText = $versionData | ConvertTo-Json -Compress | |
| [System.IO.File]::WriteAllLines(".\canary\version", $versionText) | |
| Write-Host "Promotion OK for canary" | |
| } | |
| echo "OLD_DVER=${oldVersion}" >> $Env:GITHUB_ENV | |
| echo "DVER=${newVersion}" >> $Env:GITHUB_ENV | |
| #- uses: trstringer/manual-approval@a824dad59ac64ac825ab8725599e483e24aa2815 | |
| # name: "Wait for approval" | |
| #if: (we actually made a change. this should be really thorough) | |
| # with: | |
| # secret: ${{ github.TOKEN }} | |
| # approvers: dalamud-maintainers | |
| # minimum-approvals: 2 | |
| # issue-title: "Deploying ${DVER} to ${{ github.event.inputs.skip-canary == true && 'release' || 'canary' }} from ${{ github.event.inputs.track }}" | |
| # issue-body: "Please approve or deny the promotion of version ${DVER}(prev ${OLD_DVER}) to ${{ github.event.inputs.skip-canary == true && 'release' || 'canary' }} from ${{ github.event.inputs.track }}." | |
| # exclude-workflow-initiator-as-approver: true | |
| - name: Commit changes | |
| shell: bash | |
| run: | | |
| git config --global user.name "Actions User" | |
| git config --global user.email "actions@github.com" | |
| git add . | |
| git commit -m "[CI] Promoting for ${DVER} from ${{ github.event.inputs.track }}, skip canary: ${{ github.event.inputs.skip-canary }}" || true | |
| git push origin main || true |