[Shaman] Update Elemental ST APL for TWW s1. #21666
Workflow file for this run
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: CI | |
on: | |
pull_request: | |
branches: [ thewarwithin ] | |
push: | |
branches: [ thewarwithin ] | |
paths-ignore: | |
- 'SpellDataDump/**' | |
- 'dbc_extract3/**' | |
- 'casc_extract/**' | |
env: | |
SIMC_PROFILE: profiles/CI.simc | |
CCACHE_COMPRESS: true # always enable ccache compression | |
ccache-generation: 0 # bump if you need to "clean" ccache | |
jobs: | |
ubuntu-gcc-build: | |
name: ubuntu-${{ matrix.compiler }}-cpp${{ matrix.cppVersion }}-build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
compiler: [gcc-12, gcc-7, gcc-14] | |
cppVersion: [17, 20] | |
include: | |
- compiler: gcc-7 | |
cxx: g++-7 | |
packages: gcc-7 g++-7 | |
os: ubuntu-20.04 | |
- compiler: gcc-12 | |
cxx: g++-12 | |
packages: gcc-12 g++-12 | |
os: ubuntu-22.04 | |
- compiler: gcc-14 | |
cxx: g++-14 | |
packages: gcc-14 g++-14 | |
os: ubuntu-24.04 | |
exclude: | |
- compiler: gcc-7 | |
cppVersion: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
env: { ccache-prefix: 'ubuntu-${{ matrix.compiler }}-cpp-${{ matrix.cppVersion }}-ccache-${{ env.ccache-generation }}' } | |
with: | |
path: ${{ runner.workspace }}/.ccache | |
key: ${{ env.ccache-prefix }}-${{ github.sha }} | |
restore-keys: ${{ env.ccache-prefix }}- | |
- name: Install deps | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libcurl4-openssl-dev ninja-build ccache ${{ matrix.packages }} | |
- name: Configure | |
run: cmake -H. -B'${{ runner.workspace }}/b/ninja' -GNinja -DBUILD_GUI=OFF | |
-DCMAKE_BUILD_TYPE=Debug | |
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} -DCMAKE_C_COMPILER=${{ matrix.compiler }} | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
-DCMAKE_CXX_STANDARD=${{ matrix.cppVersion }} | |
- name: Build | |
env: | |
CCACHE_BASEDIR: ${{ runner.workspace }} | |
CCACHE_DIR: ${{ runner.workspace }}/.ccache | |
CCACHE_MAXSIZE: 192M # full build consumes around ~80, ~2x that to be safe | |
run: | | |
ccache -z | |
ninja -C '${{ runner.workspace }}/b/ninja' | |
ccache -s | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
ubuntu-clang-build: | |
name: ubuntu-build-${{ matrix.compiler }}-C++${{ matrix.cppVersion }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
cppVersion: [17, 20] | |
compiler: [clang++-7, clang++-15, clang++-18] | |
include: | |
- compiler: clang++-7 | |
os: ubuntu-20.04 | |
packages: clang-7 lld-7 | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
packages: clang-15 lld-15 | |
enable_file_prefix_map: true | |
- compiler: clang++-18 | |
os: ubuntu-24.04 | |
packages: clang-18 lld-18 | |
enable_file_prefix_map: true | |
exclude: | |
- compiler: clang++-7 | |
cppVersion: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
env: { ccache-prefix: 'ubuntu-${{ matrix.compiler }}-cpp-${{ matrix.cppVersion }}-ccache-${{ env.ccache-generation }}' } | |
with: | |
path: ${{ runner.workspace }}/.ccache | |
key: ${{ env.ccache-prefix }}-${{ github.sha }} | |
restore-keys: ${{ env.ccache-prefix }}- | |
- name: Install deps | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libcurl4-openssl-dev ninja-build ccache ${{ matrix.packages }} | |
- name: Configure | |
env: | |
UBSAN_STRIP_COUNT: "`echo \"${{ runner.workspace }}//\" | grep -o '/' - | wc -l`" | |
run: cmake -H. -B'${{ runner.workspace }}/b/ninja' -GNinja -DBUILD_GUI=OFF | |
-DCMAKE_BUILD_TYPE=Debug | |
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} | |
-DCMAKE_CXX_FLAGS="-Og ${{ matrix.enable_file_prefix_map && format('-ffile-prefix-map={0}/=/', runner.workspace) || ''}} | |
-fno-omit-frame-pointer -fsanitize=address,undefined | |
-fsanitize-undefined-strip-path-components=$UBSAN_STRIP_COUNT" | |
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld -fsanitize=address,undefined" | |
-DCMAKE_CXX_STANDARD=${{ matrix.cppVersion }} | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
- name: Build | |
env: | |
CCACHE_BASEDIR: ${{ runner.workspace }} | |
CCACHE_DIR: ${{ runner.workspace }}/.ccache | |
CCACHE_MAXSIZE: 256M # full build consumes around ~124, ~2x that to be safe | |
run: | | |
ccache -z | |
ninja -C '${{ runner.workspace }}/b/ninja' | |
ccache -s | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
tww-spelldata-dump: | |
name: Spell Data Dump | |
runs-on: ${{ matrix.os }} | |
needs: [ ubuntu-clang-build ] | |
if: github.event_name == 'push' | |
strategy: | |
fail-fast: false | |
matrix: | |
cppVersion: [17] | |
compiler: [clang++-15] | |
include: | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
- uses: actions/checkout@v4 | |
- name: Dump Spell Data | |
env: | |
UBSAN_OPTIONS: print_stacktrace=1 | |
SIMC_CLI_PATH: ${{ runner.workspace }}/b/ninja/simc | |
run: ${{ github.workspace}}/SpellDataDump/spelldatadump_ci.sh | |
- name: Check for Non-Trivial Changes | |
run: | | |
if [ "$(git ls-files -m)" = "SpellDataDump/build_info.txt" ]; then | |
git checkout -- SpellDataDump/build_info.txt | |
fi | |
- name: Setup | |
run: echo "SHORT_SHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV | |
- name: Commit Spell Data | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: 'Update Spell Data Dump ${{ env.SHORT_SHA }}' | |
default_author: github_actions | |
fetch: --no-tags --force --prune --no-recurse-submodules --depth=1 origin ${{ github.ref_name }} | |
add: '*.txt' | |
tww-test: | |
name: tww-test-${{ matrix.spec }}-${{ matrix.fightstyle }} | |
runs-on: ${{ matrix.os }} | |
needs: [ ubuntu-clang-build ] | |
strategy: | |
fail-fast: false | |
matrix: | |
cppVersion: [ 17 ] | |
compiler: [ clang++-15 ] | |
spec: [ | |
deathknight_blood, deathknight_unholy, deathknight_frost, | |
druid_balance, druid_feral, druid_guardian, | |
rogue_assassination, rogue_outlaw, rogue_subtlety, | |
demonhunter_vengeance, demonhunter_havoc, | |
priest_shadow, | |
hunter_beast_mastery, hunter_marksmanship, hunter_survival, | |
monk_brewmaster, monk_windwalker, | |
mage_arcane, mage_fire, mage_frost, | |
paladin_protection, | |
] | |
fightstyle: [ singletarget, multitarget, dungeonslice ] | |
include: | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
- fightstyle: multitarget | |
style_arg: desired_targets=10 | |
- fightstyle: dungeonslice | |
style_arg: fight_style=DungeonSlice | |
env: | |
UBSAN_OPTIONS: print_stacktrace=1 | |
SIMC_ARGS: output=/dev/null threads=2 iterations=10 cleanup_threads=1 | |
PLAYER_ARGS: load_default_gear=1 | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
- name: Setup | |
id: setup | |
env: | |
MATRIX_SPEC: ${{ matrix.spec }} | |
run: | | |
echo "CLASS_STR=${MATRIX_SPEC%%_*}" >> "$GITHUB_ENV" | |
echo "SPEC_STR=${MATRIX_SPEC#*_}" >> "$GITHUB_ENV" | |
- name: "Log Debug" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} log=1 debug=1 ${{ matrix.style_arg }} \ | |
enable_all_talents=1 enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} log=1 debug=1 ${{ matrix.style_arg }} \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "HTML JSON" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} html=test.html json=test.json ${{ matrix.style_arg }} \ | |
enable_all_talents=1 enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} html=test.html json=test.json ${{ matrix.style_arg }} \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "No Talents, No Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "No Talents, No Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "No Talents, All Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_item_effects=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "No Talents, All Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "Starter Talents, No Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} load_default_talents=1 | |
- name: "Starter Talents, No Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} load_default_talents=1 | |
- name: "Starter Talents, All Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_item_effects=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} load_default_talents=1 | |
- name: "Starter Talents, All Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} load_default_talents=1 | |
- name: "All Talents, No Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_talents=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "All Talents, No Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_talents=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "All Talents, All Effects, No Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_talents=1 enable_all_item_effects=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: "All Talents, All Effects, All Sets" | |
if: always() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc ${{ env.SIMC_ARGS }} ${{ matrix.style_arg }} \ | |
enable_all_talents=1 enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} | |
- name: Dump APL | |
id: dump_apl | |
if: github.event_name == 'push' && matrix.fightstyle == 'singletarget' && !failure() | |
run: | | |
${{ runner.workspace }}/b/ninja/simc save_profiles=1 save_full_profile=0 \ | |
enable_all_talents=1 enable_all_item_effects=1 enable_all_sets=1 \ | |
${{ env.CLASS_STR }}=${{ matrix.spec }} spec=${{ env.SPEC_STR }} ${{ env.PLAYER_ARGS }} \ | |
save_actions=${{ matrix.spec }}.simc | |
- name: Upload APL | |
if: steps.dump_apl.outcome == 'success' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: apl-${{ github.sha }}-${{ matrix.spec }} | |
path: ${{ matrix.spec }}.simc | |
retention-days: 1 | |
tww-apl-dump: | |
name: Action Priority List Dump | |
runs-on: ${{ matrix.os }} | |
needs: [ tww-test, tww-spelldata-dump ] | |
if: github.event_name == 'push' && ( success() || failure() ) && github.repository == 'simulationcraft/simc' | |
strategy: | |
fail-fast: false | |
matrix: | |
cppVersion: [17] | |
compiler: [clang++-15] | |
include: | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download APLs | |
uses: actions/download-artifact@v4 | |
with: | |
path: ActionPriorityLists | |
pattern: apl-${{ github.sha }}-* | |
merge-multiple: true | |
- name: Setup | |
run: echo "SHORT_SHA=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV | |
- name: Commit APLs | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: 'Update APL Dump ${{ env.SHORT_SHA }}' | |
default_author: github_actions | |
fetch: --no-tags --force --prune --no-recurse-submodules --depth=1 origin ${{ github.ref_name }} | |
add: '*.simc' | |
- name: Cleanup | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: apl-${{ github.sha }}-* | |
ubuntu-run: | |
name: ubuntu-${{ matrix.compiler }}-cpp-${{ matrix.cppVersion }}-${{ matrix.type }} | |
runs-on: ${{ matrix.os }} | |
needs: [ ubuntu-clang-build, ubuntu-gcc-build ] | |
if: false # TODO: re-enable when all TWW APLs are ready && CI.simc has all specs | |
strategy: | |
fail-fast: false | |
matrix: | |
cppVersion: [17, 20] | |
compiler: [clang++-7, clang++-15, gcc-7, gcc-12] | |
type: [spell_query, log_debug, patchwerk, dungeon_slice] | |
include: | |
- type: spell_query | |
simc_flags: spell_query=spell > /dev/null | |
- type: log_debug | |
simc_flags: $SIMC_PROFILE log=1 debug=1 max_time=100 | |
- type: patchwerk | |
simc_flags: $SIMC_PROFILE iterations=10 cleanup_threads=1 | |
- type: dungeon_slice | |
simc_flags: $SIMC_PROFILE iterations=10 fight_style=DungeonSlice cleanup_threads=1 | |
- compiler: clang++-7 | |
os: ubuntu-20.04 | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
- compiler: gcc-12 | |
os: ubuntu-22.04 | |
- compiler: gcc-7 | |
os: ubuntu-20.04 | |
exclude: | |
- compiler: clang++-7 | |
cppVersion: 20 | |
- compiler: gcc-7 | |
cppVersion: 20 | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
- name: Run | |
env: | |
UBSAN_OPTIONS: print_stacktrace=1 | |
run: ${{ runner.workspace }}/b/ninja/simc output=/dev/null html=/dev/null json2=/dev/null json3=/dev/null ${{ matrix.simc_flags }} | |
simc-profiles: | |
name: Regenerate profiles | |
runs-on: ${{ matrix.os }} | |
needs: [ ubuntu-clang-build ] | |
if: github.event_name == 'push' && false # TODO: re-enable when all TWW APLs are ready | |
strategy: | |
fail-fast: false | |
matrix: | |
cppVersion: [17] | |
compiler: [clang++-15] | |
include: | |
- compiler: clang++-15 | |
os: ubuntu-22.04 | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-${{ matrix.compiler }}-for_run-${{ github.sha }}-cpp-${{ matrix.cppVersion }} | |
- uses: actions/checkout@v4 | |
- name: Run | |
env: | |
UBSAN_OPTIONS: print_stacktrace=1 | |
SIMC_CLI_PATH: ${{ runner.workspace }}/b/ninja/simc | |
run: ${{ github.workspace }}/generate_profiles_ci.sh | |
- name: Commit Profiles | |
uses: EndBug/[email protected] | |
with: | |
message: 'Regenerate profiles' | |
default_author: github_actions | |
fetch: --no-tags --force --prune --no-recurse-submodules --depth=1 origin ${{ github.ref_name }} | |
add: '*.simc' | |
build-osx: | |
name: macos-latest | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build | |
run: make SANITIZE=1 -C engine debug -j 2 | |
- name: Smoke Test | |
if: false # TODO: re-enable when all TWW APLs are ready | |
run: ./engine/simc $SIMC_PROFILE iterations=5 output=/dev/null html=/dev/null json2=/dev/null cleanup_threads=1 | |
windows-VS: | |
name: windows-VS-${{ matrix.vs }}-${{ matrix.arch }} | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
vs: [2019] | |
arch: [x64, amd64_arm64] | |
include: | |
- arch: x64 | |
runSmokeTest: false # TODO: re-enable when all TWW APLs are ready | |
env: | |
CMAKE_BUILD_DIR: ${{ github.workspace }}/builddir/ | |
steps: | |
- uses: actions/checkout@v4 | |
# Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service. | |
- uses: lukka/get-cmake@latest | |
# On Windows runners, let's ensure to have the Developer Command Prompt environment setup correctly. As used here the Developer Command Prompt created is targeting x64 and using the default the Windows SDK. | |
- uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{ matrix.arch }} | |
- name: Generate project files | |
run: | | |
cmake -B "${{ env.CMAKE_BUILD_DIR }}" -GNinja -DBUILD_GUI=OFF -DCMAKE_BUILD_TYPE=Debug | |
- name: Build | |
run: | | |
cmake --build "${{ env.CMAKE_BUILD_DIR }}" | |
- name: Smoke Test | |
if: matrix.runSmokeTest | |
run: ${{ env.CMAKE_BUILD_DIR }}/simc.exe $env:SIMC_PROFILE iterations=5 output=nul html=nul json2=nul cleanup_threads=1 |