[CI] Try github.event.workflow_run.pull_requests[0].id #53
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: spec-test | |
run-name: ${{ github.event.workflow_run.head_commit.message }} | |
on: | |
workflow_run: | |
workflows: ['CI'] | |
types: [completed] | |
jobs: | |
check-binary: | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
runs-on: ubuntu-22.04 | |
outputs: | |
cache-hit: ${{ steps.restore-cache.outputs.cache-hit }} | |
steps: | |
- uses: actions/cache@v4 | |
id: restore-cache | |
with: | |
path: | | |
${{ runner.workspace }}/b/ninja/simc | |
profiles | |
tests | |
generate_profiles_ci.sh | |
.git | |
key: ubuntu-clang++-15-for_run-${{ github.event.workflow_run.head_sha }}-cpp-17 | |
build-binary: | |
needs: [ check-binary ] | |
if: ${{ needs.check-binary.outputs.cache-hit != 'true' }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.workflow_run.head_branch }} | |
- uses: actions/cache@v4 | |
env: { ccache-prefix: 'ubuntu-clang++-15-cpp-17-ccache-0' } | |
with: | |
path: ${{ runner.workspace }}/.ccache | |
key: ${{ env.ccache-prefix }}-${{ github.event.workflow_run.head_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 clang-15 lld-15 | |
- 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=clang++-15 | |
-DCMAKE_CXX_FLAGS="-Og ${{ 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=17 | |
-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-clang++-15-for_run-${{ github.event.workflow_run.head_sha }}-cpp-17 | |
spec-test: | |
name: spec-test-${{ matrix.spec }}-${{ matrix.fightstyle }} | |
runs-on: ubuntu-22.04 | |
needs: [ check-binary, build-binary ] | |
strategy: | |
fail-fast: false | |
matrix: | |
spec: [ | |
deathknight_blood, deathknight_unholy, deathknight_frost, | |
demonhunter_vengeance, demonhunter_havoc, | |
druid_balance, druid_feral, druid_guardian, druid_restoration, | |
evoker_devastation, evoker_augmentation, | |
hunter_beast_mastery, hunter_marksmanship, hunter_survival, | |
mage_arcane, mage_fire, mage_frost, | |
monk_brewmaster, monk_windwalker, monk_mistweaver, | |
paladin_protection, paladin_retribution, | |
priest_shadow, | |
rogue_assassination, rogue_outlaw, rogue_subtlety, | |
shaman_elemental, | |
warlock_affliction, warlock_demonology, warlock_destruction, | |
warrior_arms, warrior_fury, warrior_protection | |
] | |
fightstyle: [singletarget, multitarget, dungeonslice] | |
include: | |
- 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 allow_experimental_specializations=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-clang++-15-for_run-${{ github.event.workflow_run.head_sha }}-cpp-17 | |
- 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 \ | |
allow_experimental_specializations=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' | |
# continue-on-error: true | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: apl-${{ github.event.workflow_run.head_sha }}-${{ matrix.spec }} | |
# path: ${{ matrix.spec }}.simc | |
# retention-days: 1 | |