mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-03 03:19:08 +08:00
85 lines
3.3 KiB
YAML
85 lines
3.3 KiB
YAML
name: Store submission on release
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
release:
|
|
types: [published]
|
|
|
|
permissions:
|
|
id-token: write
|
|
|
|
jobs:
|
|
|
|
microsoft_store:
|
|
name: Publish Microsoft Store
|
|
environment: store
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: BODGY - Set up Gnome Keyring for future Cert Auth
|
|
run: |-
|
|
sudo apt-get install -y gnome-keyring
|
|
export $(dbus-launch --sh-syntax)
|
|
export $(echo 'anypass_just_to_unlock' | gnome-keyring-daemon --unlock)
|
|
export $(echo 'anypass_just_to_unlock' | gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
|
|
|
|
- name: Log in to Azure
|
|
uses: azure/login@v2
|
|
with:
|
|
client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
enable-AzPSSession: true
|
|
|
|
- name: Get latest URL from public releases
|
|
id: releaseVars
|
|
run: |
|
|
release=$(curl https://api.github.com/repos/Microsoft/PowerToys/releases | jq '[.[]|select(.name | contains("Release"))][0]')
|
|
assets=$(jq -n "$release" | jq '.assets')
|
|
powerToysSetup=$(jq -n "$assets" | jq '[.[]|select(.name | contains("PowerToysUserSetup"))]')
|
|
echo powerToysInstallerX64Url=$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("x64"))][0].browser_download_url') >> $GITHUB_OUTPUT
|
|
echo powerToysInstallerArm64Url=$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("arm64"))][0].browser_download_url') >> $GITHUB_OUTPUT
|
|
|
|
- uses: microsoft/setup-msstore-cli@v1
|
|
|
|
- name: Fetch Store Credential
|
|
uses: azure/cli@v2
|
|
with:
|
|
azcliversion: latest
|
|
inlineScript: |-
|
|
az keyvault secret download --vault-name ${{ secrets.AZURE_KEYVAULT_NAME }} -n ${{ secrets.AZURE_AUTH_CERT_NAME }} -f cert.pfx.b64
|
|
base64 -d < cert.pfx.b64 > cert.pfx
|
|
|
|
- name: Configure Store Credentials
|
|
run: |-
|
|
msstore reconfigure -cfp cert.pfx -c ${{ secrets.AZURE_CLIENT_ID }} -t ${{ secrets.AZURE_TENANT_ID }} -s ${{ secrets.SELLER_ID }}
|
|
|
|
- name: Update draft submission
|
|
run: |-
|
|
msstore submission update ${{ secrets.PRODUCT_ID }} '{
|
|
"packages":[
|
|
{
|
|
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerX64Url }}",
|
|
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
|
|
"architectures":["X64"],
|
|
"installerParameters":"/quiet /norestart",
|
|
"isSilentInstall":true
|
|
},
|
|
{
|
|
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerArm64Url }}",
|
|
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
|
|
"architectures":["Arm64"],
|
|
"installerParameters":"/quiet /norestart",
|
|
"isSilentInstall":true
|
|
}
|
|
]
|
|
}'
|
|
|
|
- name: Publish Submission
|
|
run: |-
|
|
msstore submission publish ${{ secrets.PRODUCT_ID }}
|
|
|
|
- name: Clean up auth certificate
|
|
if: always()
|
|
run: |-
|
|
rm -f cert.pfx cert.pfx.b64
|