Workspaces are back! #843
This file contains 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: TestDriver.ai | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+*" | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "docs/**" | |
- ".storybook/**" | |
- ".vscode/**" | |
- ".editorconfig" | |
- ".gitignore" | |
- ".prettierrc" | |
- ".eslintrc.js" | |
- "**/*.md" | |
schedule: | |
- cron: 0 21 * * * | |
workflow_dispatch: null | |
env: | |
GO_VERSION: "1.22" | |
NODE_VERSION: 22 | |
permissions: | |
contents: read # To allow the action to read repository contents | |
pull-requests: write # To allow the action to create/update pull request comments | |
jobs: | |
build_and_upload: | |
name: Test Onboarding | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# General build dependencies | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{env.GO_VERSION}} | |
cache-dependency-path: | | |
go.sum | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{env.NODE_VERSION}} | |
- name: Install Yarn | |
run: | | |
corepack enable | |
yarn install | |
- name: Install Task | |
uses: arduino/setup-task@v2 | |
with: | |
version: 3.x | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
run: task package | |
env: | |
USE_SYSTEM_FPM: true # Ensure that the installed version of FPM is used rather than the bundled one. | |
CSC_IDENTITY_AUTO_DISCOVERY: false # disable codesign | |
shell: powershell # electron-builder's Windows code signing package has some compatibility issues with pwsh, so we need to use Windows Powershell | |
# Upload .exe as an artifact | |
- name: Upload .exe artifact | |
id: upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-exe | |
path: make/*.exe | |
- uses: testdriverai/action@main | |
id: testdriver | |
env: | |
FORCE_COLOR: "3" | |
with: | |
key: ${{ secrets.DASHCAM_API }} | |
prerun: | | |
$headers = @{ | |
Authorization = "token ${{ secrets.GITHUB_TOKEN }}" | |
} | |
$downloadFolder = "./download" | |
$artifactFileName = "waveterm.exe" | |
$artifactFilePath = "$downloadFolder/$artifactFileName" | |
Write-Host "Starting the artifact download process..." | |
# Create the download directory if it doesn't exist | |
if (-not (Test-Path -Path $downloadFolder)) { | |
Write-Host "Creating download folder..." | |
mkdir $downloadFolder | |
} else { | |
Write-Host "Download folder already exists." | |
} | |
# Fetch the artifact upload URL | |
Write-Host "Fetching the artifact upload URL..." | |
$artifactUrl = (Invoke-RestMethod -Uri "https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" -Headers $headers).artifacts[0].archive_download_url | |
if ($artifactUrl) { | |
Write-Host "Artifact URL successfully fetched: $artifactUrl" | |
} else { | |
Write-Error "Failed to fetch the artifact URL." | |
exit 1 | |
} | |
# Download the artifact (zipped file) | |
Write-Host "Starting artifact download..." | |
$artifactZipPath = "$env:TEMP\artifact.zip" | |
try { | |
Invoke-WebRequest -Uri $artifactUrl ` | |
-Headers $headers ` | |
-OutFile $artifactZipPath ` | |
-MaximumRedirection 5 | |
Write-Host "Artifact downloaded successfully to $artifactZipPath" | |
} catch { | |
Write-Error "Error downloading artifact: $_" | |
exit 1 | |
} | |
# Unzip the artifact | |
$artifactUnzipPath = "$env:TEMP\artifact" | |
Write-Host "Unzipping the artifact to $artifactUnzipPath..." | |
try { | |
Expand-Archive -Path $artifactZipPath -DestinationPath $artifactUnzipPath -Force | |
Write-Host "Artifact unzipped successfully to $artifactUnzipPath" | |
} catch { | |
Write-Error "Failed to unzip the artifact: $_" | |
exit 1 | |
} | |
# Find the installer or app executable | |
$artifactInstallerPath = Get-ChildItem -Path $artifactUnzipPath -Filter *.exe -Recurse | Select-Object -First 1 | |
if ($artifactInstallerPath) { | |
Write-Host "Executable file found: $($artifactInstallerPath.FullName)" | |
} else { | |
Write-Error "Executable file not found. Exiting." | |
exit 1 | |
} | |
# Run the installer and log the result | |
Write-Host "Running the installer: $($artifactInstallerPath.FullName)..." | |
try { | |
Start-Process -FilePath $artifactInstallerPath.FullName -Wait | |
Write-Host "Installer ran successfully." | |
} catch { | |
Write-Error "Failed to run the installer: $_" | |
exit 1 | |
} | |
# Optional: If the app executable is different from the installer, find and launch it | |
$wavePath = Join-Path $env:USERPROFILE "AppData\Local\Programs\waveterm\Wave.exe" | |
Write-Host "Launching the application: $($wavePath)" | |
Start-Process -FilePath $wavePath | |
Write-Host "Application launched." | |
prompt: | | |
1. /run testdriver/onboarding.yml | |
2. /generate desktop 20 |