Setup all stuff needed for running the smoke tests
git clone --recursive [email protected]:tauri-apps/smoke-tests.git \
|| (cd smoke-tests && git pull origin dev; cd ..) # always prepare up-to-date smoke tests in case it's already available
cargo build --lib
cargo install --locked trunk --force # used by rust/yew
. .scripts/setup.sh
# Setup Environment to execute in the tauri directory.
$CWD = [Environment]::CurrentDirectory
Push-Location $MyInvocation.MyCommand.Path
[Environment]::CurrentDirectory = $PWD
# send git stderr to powershell stdout
$env:GIT_REDIRECT_STDERR = '2>&1'
# if the smoke-tests path doesn't exist.
if (-Not (Test-Path $CWD\smoke-tests -PathType Any)) {
Start-Job -ScriptBlock {
# Setup Environment to execute in the tauri directory.
$CWD = [Environment]::CurrentDirectory
Push-Location $MyInvocation.MyCommand.Path
[Environment]::CurrentDirectory = $PWD
#clone the smoke-tests repo into the smoke-tests folder
git clone --recursive https://github.com/tauri-apps/smoke-tests.git $CWD\smoke-tests
} | Receive-Job -AutoRemoveJob -Wait
}
# Enter the smoke-tests folder and pull the latest data from origin/dev
cd smoke-tests; git pull origin dev; cd ..
# build and install everything Rust related.
cargo build --lib
cargo install --locked trunk --force
. .scripts/setup.ps1
Run specific smoketest in dev mode
shopt -s globstar
cd smoke-tests/**/$name 2>/dev/null \
|| cd smoke-tests/**/$name/$name # workaround for rust/yew/todomvc/todomvc
case "$PWD" in
*/node/*)
yarn && yarn tauri:dev
;;
*/rust/*)
cargo web deploy
[ $name = `basename $(dirname $PWD)` ] && cd ..
yarn add tauri@link:../../../tooling/cli.js
yarn && yarn tauri dev
;;
*)
echo unknown project $(dirname $name)/$name
;;
esac
param(
[string] $smoke_test_name
)
# Setup Environment to execute in the tauri directory.
$CWD = [Environment]::CurrentDirectory
Push-Location $MyInvocation.MyCommand.Path
[Environment]::CurrentDirectory = $PWD
# get the example paths.
$smoke_test_path = Get-ChildItem smoke-tests\*\*\$env:name
# if the example path is null get the todomvc path.
if ($smoke_test_path -eq $null) {
$smoke_test_path = Get-ChildItem smoke-tests\*\*\*\$env:name\$env:name
}
# if the example path is still null get the helloworld example path.
if ($smoke_test_path -eq $null) {
$smoke_test_path = Get-ChildItem smoke-tests\tauri\*\$env:name
}
# switch on the parent folder name.
switch ($smoke_test_path.parent) {
# if node, run yarn.
{"vanillajs" -Or "react" -Or "svelte" -Or "vue"} {
cd $smoke_test_path.FullName; yarn; yarn tauri:dev
}
# if rust, run cargo web deploy
"yew" {
cd $smoke_test_path.FullName; cargo web deploy
}
# if tauri run the helloworld example from the tauri folder.
"tauri" {
cd $CWD/tauri; cargo run --bin helloworld
}
# transpiled are not supported yet.
"transpiled" {
Write-Output("Example not supported yet")
}
}
List all available smoke tests
find smoke-tests/*/*/* -maxdepth 0 -type d -not -path '*.git*' \
-exec sh -c 'echo $(basename $(dirname {}))/$(basename {})' \;
# Setup Environment to execute in the tauri directory.
$CWD = [Environment]::CurrentDirectory
Push-Location $MyInvocation.MyCommand.Path
[Environment]::CurrentDirectory = $PWD
# initialize the smoke-tests list.
$smoke_tests = @()
# get the helloworld smoke tests
$smoke_tests += Get-ChildItem smoke-tests/*/* -Filter helloworld
# get the rest of the smoke-tests.
$smoke_tests += Get-ChildItem smoke-tests/*/* -Directory -Exclude ('src*', 'public', 'test*', 'source', 'lib', 'web', 'dist', 'node_*')
# print out the smoke tests.
foreach($e in $smoke_tests) {
Write-Output("$($e.Name): $($e.Parent)/$($e.Name)")
}
Remove installed dependencies and reset smoke tests in case something gone wrong
cargo clean
shopt -s globstar
rm -r **/node_modules
cd smoke-tests
git checkout -- . # discard all unstaged changes
git clean -dfX # remove all untracked files & directories
# Setup Environment to execute in the tauri directory.
$CWD = [Environment]::CurrentDirectory
Push-Location $MyInvocation.MyCommand.Path
[Environment]::CurrentDirectory = $PWD
# clean up any artifacts.
cargo clean
# find any node_module folders.
$node_paths = Get-ChildItem -Path smoke-tests\ -Filter node_modules -Recurse -ErrorAction SilentlyContinue -Force
if (-Not $node_paths -eq $null) {
# delete all of the node_module folders.
foreach ($path in $node_paths) {
$path.Delete()
}
# enter the smoke-tests folder and remove any changes.
cd $CWD/smoke-tests; git checkout -- .; git clean -dfX
}