mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-11-04 17:17:39 +00:00
ui tests: Windows MSI installer GUI tests on a GitHub runner (install folder, update, uninstall)
This commit is contained in:
1 parent
8927c18925
commit
5362e72faa
4 files changed
+637
No files matched your search
@@ -0,0 +1,93 @@
|
||||
name: windows-msi-gui-test
|
||||
run-name: "Windows GUI: ${{ inputs.scenario }} ${{ inputs.label }}"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
scenario:
|
||||
description: "Scenario to run (all: every scenario except the known issue update-desktop; everything: all of them)"
|
||||
required: true
|
||||
default: all
|
||||
type: choice
|
||||
options: [all, everything, uninstall-desktop, update-desktop, update-same-build, default-folder, profile-folder, appdata-folder]
|
||||
label:
|
||||
description: "Free text shown in the run name"
|
||||
required: false
|
||||
default: ""
|
||||
type: string
|
||||
new_msi_run_id:
|
||||
description: "Id of a workflow run that uploaded the MSI under test as an artifact (empty: use new_msi_url)"
|
||||
required: false
|
||||
default: ""
|
||||
type: string
|
||||
new_msi_artifact:
|
||||
description: "Name of the MSI artifact in that run"
|
||||
required: false
|
||||
default: "simplex-desktop-windows-x86_64-msi"
|
||||
type: string
|
||||
new_msi_url:
|
||||
description: "URL of the new MSI when new_msi_run_id is empty"
|
||||
required: false
|
||||
default: "https://github.com/simplex-chat/simplex-chat/releases/download/v7.0.3/simplex-desktop-windows-x86_64.msi"
|
||||
type: string
|
||||
old_msi_url:
|
||||
description: "URL of the old MSI (installed before updating)"
|
||||
required: false
|
||||
default: "https://github.com/simplex-chat/simplex-chat/releases/download/v7.0.2/simplex-desktop-windows-x86_64.msi"
|
||||
type: string
|
||||
patch_with_ref:
|
||||
description: "Branch whose scripts/desktop/disable-msi-install-dir-wipe-windows.ps1 is applied to the new MSI (empty: no patch)"
|
||||
required: false
|
||||
default: ""
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
|
||||
jobs:
|
||||
windows-msi-gui-test:
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout test scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
sparse-checkout: apps/multiplatform/scripts/windows-msi
|
||||
|
||||
- name: Checkout MSI patch script
|
||||
if: inputs.patch_with_ref != ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.patch_with_ref }}
|
||||
path: patchsrc
|
||||
sparse-checkout: scripts/desktop
|
||||
|
||||
- name: Download new MSI from build run
|
||||
if: inputs.new_msi_run_id != ''
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.new_msi_artifact }}
|
||||
run-id: ${{ inputs.new_msi_run_id }}
|
||||
github-token: ${{ github.token }}
|
||||
path: C:\msitest\artifact
|
||||
|
||||
- name: Run scenarios
|
||||
shell: pwsh
|
||||
env:
|
||||
SCENARIO: ${{ inputs.scenario }}
|
||||
NEW_MSI_URL: ${{ inputs.new_msi_url }}
|
||||
NEW_MSI_DIR: ${{ inputs.new_msi_run_id != '' && 'C:\msitest\artifact' || '' }}
|
||||
OLD_MSI_URL: ${{ inputs.old_msi_url }}
|
||||
PATCH_SCRIPT: ${{ inputs.patch_with_ref != '' && 'patchsrc\scripts\desktop\disable-msi-install-dir-wipe-windows.ps1' || '' }}
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force C:\msitest | Out-Null
|
||||
& apps/multiplatform/scripts/windows-msi/msi-scenarios.ps1 -Scenario $env:SCENARIO -NewMsiUrl $env:NEW_MSI_URL -NewMsiDir $env:NEW_MSI_DIR -OldMsiUrl $env:OLD_MSI_URL -PatchScript $env:PATCH_SCRIPT
|
||||
|
||||
- name: Upload evidence
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-gui-evidence
|
||||
path: C:\msitest\evidence
|
||||
retention-days: 30
|
||||
Reference in new issue
Block a user