From e4049f4b819053f1892eaff439ce63860a635c34 Mon Sep 17 00:00:00 2001 From: larzie Date: Thu, 7 Nov 2024 16:04:39 +0300 Subject: [PATCH 1/7] Update build CI --- .github/workflows/build.yml | 426 ++++++++++++++++++------------------ 1 file changed, 211 insertions(+), 215 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80c5df29..aab20e49 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,8 +16,8 @@ on: pull_request: push: branches: - - '**' # every branch - - '!no-build-**' # unless marked as no-build + - '**' # every branch + - '!no-build-**' # unless marked as no-build env: CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm-cache @@ -33,106 +33,104 @@ env: jobs: build-windows: name: Build Windows - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: recursive + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive - - name: Prepare for Build Debug Info - id: build-debug-info - uses: ./.github/actions/build-debug-info - with: - has-sccache: ${{ inputs.use-ccache }} - if: inputs.build-debug-info + - name: Prepare for Build Debug Info + id: build-debug-info + uses: ./.github/actions/build-debug-info + with: + has-sccache: ${{ inputs.use-ccache }} + if: inputs.build-debug-info - - name: Setup caches - uses: ./.github/actions/setup-cache - with: - host: linux - target: win - use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} + - name: Setup caches + uses: ./.github/actions/setup-cache + with: + host: linux + target: win + use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} - - name: Setup Ninja - uses: ./.github/actions/setup-ninja - with: - host: linux + - name: Setup Ninja + uses: ./.github/actions/setup-ninja + with: + host: linux - - name: Setup CLI - uses: geode-sdk/cli/.github/actions/setup@main + - name: Setup CLI + uses: geode-sdk/cli/.github/actions/setup@main - - name: Download xwin - uses: robinraju/release-downloader@v1.10 - with: - repository: Jake-Shadle/xwin - latest: true - fileName: 'xwin-*-x86_64-unknown-linux-musl.tar.gz' - tarBall: false - zipBall: false - out-file-path: "epic-xwin" + - name: Download xwin + uses: robinraju/release-downloader@v1 + with: + repository: Jake-Shadle/xwin + latest: true + fileName: 'xwin-*-x86_64-unknown-linux-musl.tar.gz' + tarBall: false + zipBall: false + out-file-path: "epic-xwin" - - name: Prepare xwin - run: | - tar -xzf epic-xwin/xwin-*-x86_64-unknown-linux-musl.tar.gz -C epic-xwin - mv epic-xwin/xwin-*-x86_64-unknown-linux-musl/xwin ./xwin - ./xwin --arch x86_64 --sdk-version 10.0.22621 --accept-license list + - name: Prepare xwin + run: | + tar -xzf epic-xwin/xwin-*-x86_64-unknown-linux-musl.tar.gz -C epic-xwin + mv epic-xwin/xwin-*-x86_64-unknown-linux-musl/xwin ./xwin + ./xwin --arch x86_64 --sdk-version 10.0.22621 --accept-license list - # this caches '.xwin-cache/**/*' but that's actually only gonna - # contain the manifest cuz we only ran `xwin list` so far - - name: Setup xwin Cache - id: xwin-cache - uses: actions/cache@v4 - with: - path: .xwin-cache - key: xwin-win-v1-${{ hashFiles('.xwin-cache/**/*') }} + - name: Setup xwin Cache + id: xwin-cache + uses: actions/cache@v4 + with: + path: .xwin-cache + key: xwin-win-v1-${{ hashFiles('.xwin-cache/**/*') }} - - name: Download Windows headers - run: ./xwin --arch x86_64 --sdk-version 10.0.22621 --accept-license splat --include-debug-libs - if: steps.xwin-cache.outputs.cache-hit != 'true' + - name: Download Windows headers + run: ./xwin --arch x86_64 --sdk-version 10.0.22621 --accept-license splat --include-debug-libs + if: steps.xwin-cache.outputs.cache-hit != 'true' - - name: Download clang-msvc-sdk toolchain - uses: actions/checkout@v4 - with: - repository: 'geode-sdk/clang-msvc-sdk' - path: toolchain - submodules: recursive + - name: Download clang-msvc-sdk toolchain + uses: actions/checkout@v4 + with: + repository: 'geode-sdk/clang-msvc-sdk' + path: toolchain + submodules: recursive - - name: Configure - run: ${{ env.base-configure-command }} -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN ${{ steps.build-debug-info.outputs.extra-configure }} - env: - SPLAT_DIR: ${{ github.workspace }}/.xwin-cache/splat - TOOLCHAIN: ${{ github.workspace }}/toolchain/clang-msvc.cmake - HOST_ARCH: x86_64 + - name: Configure + run: ${{ env.base-configure-command }} -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN ${{ steps.build-debug-info.outputs.extra-configure }} + env: + SPLAT_DIR: ${{ github.workspace }}/.xwin-cache/splat + TOOLCHAIN: ${{ github.workspace }}/toolchain/clang-msvc.cmake + HOST_ARCH: x86_64 - - name: Build - run: | - ${{ env.base-build-command }} - ${{ steps.build-debug-info.outputs.extra-build }} + - name: Build + run: | + ${{ env.base-build-command }} + ${{ steps.build-debug-info.outputs.extra-build }} - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: geode-win - path: ./bin/nightly + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: geode-win + path: ./bin/nightly - - name: Package Installer - run: | - sudo apt install nsis - makensis -WX -V3 ./installer/windows/installer.nsi + - name: Package installer + run: | + sudo apt install nsis + makensis -WX -V3 ./installer/windows/installer.nsi - - name: Upload Installer - uses: actions/upload-artifact@v4 - with: - name: geode-installer-win - path: './installer/windows/geode-installer-win.exe' + - name: Upload installer + uses: actions/upload-artifact@v4 + with: + name: geode-installer-win + path: './installer/windows/geode-installer-win.exe' - - name: Complete Build Debug Info - uses: ./.github/actions/build-debug-info-post - with: - target: win - if: inputs.build-debug-info && (success() || failure()) + - name: Complete Build Debug Info + uses: ./.github/actions/build-debug-info-post + with: + target: win + if: inputs.build-debug-info && (success() || failure()) build-mac: name: Build macOS @@ -142,213 +140,211 @@ jobs: SCCACHE_CACHE_MULTIARCH: 1 steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: recursive + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive - - name: Prepare for Build Debug Info - id: build-debug-info - uses: ./.github/actions/build-debug-info - with: - has-sccache: ${{ inputs.use-ccache }} - if: inputs.build-debug-info + - name: Prepare for Build Debug Info + id: build-debug-info + uses: ./.github/actions/build-debug-info + with: + has-sccache: ${{ inputs.use-ccache }} + if: inputs.build-debug-info - # due to very strange performance issues, sccache is currently disabled for macos. sorry + # macOS does not currently support sccache due to performance issues + # - name: Setup caches + # uses: ./.github/actions/setup-cache + # with: + # host: mac + # target: mac + # use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} - # - name: Setup caches - # uses: ./.github/actions/setup-cache - # with: - # host: mac - # target: mac - # use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} + - name: Setup Ninja + uses: ./.github/actions/setup-ninja + with: + host: mac - - name: Setup Ninja - uses: ./.github/actions/setup-ninja - with: - host: mac + - name: Setup CLI + uses: geode-sdk/cli/.github/actions/setup@main - - name: Setup CLI - uses: geode-sdk/cli/.github/actions/setup@main + - name: Configure + run: > + ${{ env.base-configure-command }} + -DCMAKE_C_COMPILER=clang + -DCMAKE_CXX_COMPILER=clang++ + -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 + -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" + -DGEODE_DISABLE_PRECOMPILED_HEADERS=OFF + ${{ steps.build-debug-info.outputs.extra-configure }} - - name: Configure - run: > - ${{ env.base-configure-command }} - -DCMAKE_C_COMPILER=clang - -DCMAKE_CXX_COMPILER=clang++ - -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 - -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" - -DGEODE_DISABLE_PRECOMPILED_HEADERS=OFF - ${{ steps.build-debug-info.outputs.extra-configure }} + - name: Build + run: | + ${{ env.base-build-command }} + ${{ steps.build-debug-info.outputs.extra-build }} - - name: Build - run: | - ${{ env.base-build-command }} - ${{ steps.build-debug-info.outputs.extra-build }} + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: geode-mac + path: ./bin/nightly - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: geode-mac - path: ./bin/nightly + - name: Package installer + run: ./installer/mac/package.sh ./bin/nightly ./installer/mac/geode-installer-mac.pkg - - name: Package Installer - run: ./installer/mac/package.sh ./bin/nightly ./installer/mac/geode-installer-mac.pkg + - name: Upload installer + uses: actions/upload-artifact@v4 + with: + name: geode-installer-mac + path: './installer/mac/geode-installer-mac.pkg' - - name: Upload Installer - uses: actions/upload-artifact@v4 - with: - name: geode-installer-mac - path: './installer/mac/geode-installer-mac.pkg' - - - name: Complete Build Debug Info - uses: ./.github/actions/build-debug-info-post - with: - target: mac - if: inputs.build-debug-info && (success() || failure()) + - name: Complete Build Debug Info + uses: ./.github/actions/build-debug-info-post + with: + target: mac + if: inputs.build-debug-info && (success() || failure()) build-android: strategy: fail-fast: false matrix: config: - - name: Android (32-bit) - id: android32 - extra-configure: -DANDROID_ABI=armeabi-v7a - - - name: Android (64-bit) - id: android64 - extra-configure: -DANDROID_ABI=arm64-v8a + - name: Android (32-bit) + id: android32 + extra-configure: -DANDROID_ABI=armeabi-v7a + - name: Android (64-bit) + id: android64 + extra-configure: -DANDROID_ABI=arm64-v8a name: Build ${{ matrix.config.name }} runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: recursive + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive - - name: Prepare for Build Debug Info - id: build-debug-info - uses: ./.github/actions/build-debug-info - with: - has-sccache: ${{ inputs.use-ccache }} - if: inputs.build-debug-info + - name: Prepare for Build Debug Info + id: build-debug-info + uses: ./.github/actions/build-debug-info + with: + has-sccache: ${{ inputs.use-ccache }} + if: inputs.build-debug-info - - name: Setup caches - uses: ./.github/actions/setup-cache - with: - host: linux - target: ${{ matrix.config.id }} - use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} + - name: Setup caches + uses: ./.github/actions/setup-cache + with: + host: linux + target: ${{ matrix.config.id }} + use-ccache: ${{ github.event_name != 'workflow_dispatch' || inputs.use-ccache }} - - name: Setup Ninja - uses: ./.github/actions/setup-ninja - with: - host: linux + - name: Setup Ninja + uses: ./.github/actions/setup-ninja + with: + host: linux - - name: Setup CLI - uses: geode-sdk/cli/.github/actions/setup@main + - name: Setup CLI + uses: geode-sdk/cli/.github/actions/setup@main - - name: Setup Breakpad Tools - uses: ./.github/actions/setup-dump-sym - id: breakpad-tools + - name: Setup Breakpad Tools + uses: ./.github/actions/setup-dump-sym + id: breakpad-tools - - name: Fix Ubuntu libcstd++ - run: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt-get update - sudo apt-get install --only-upgrade libstdc++6 + - name: Fix Ubuntu libcstd++ + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get install --only-upgrade libstdc++6 - - name: Configure - run: > - ${{ env.base-configure-command }} - -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake - -DCMAKE_C_COMPILER=clang - -DCMAKE_CXX_COMPILER=clang++ - -DANDROID_PLATFORM=android-23 - -DANDROID_STL=c++_shared - ${{ matrix.config.extra-configure }} - ${{ steps.build-debug-info.outputs.extra-configure }} + - name: Configure + run: > + ${{ env.base-configure-command }} + -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake + -DCMAKE_C_COMPILER=clang + -DCMAKE_CXX_COMPILER=clang++ + -DANDROID_PLATFORM=android-23 + -DANDROID_STL=c++_shared + ${{ matrix.config.extra-configure }} + ${{ steps.build-debug-info.outputs.extra-configure }} - - name: Build - run: | - ${{ env.base-build-command }} - ${{ steps.build-debug-info.outputs.extra-build }} + - name: Build + run: | + ${{ env.base-build-command }} + ${{ steps.build-debug-info.outputs.extra-build }} - # hardcoding toolchain path :( - - name: Dump Symbols - run: | - ${{ steps.breakpad-tools.outputs.binary-path }} ./bin/nightly/Geode.${{ matrix.config.id }}.so -o ./bin/nightly/Geode.${{ matrix.config.id }}.so.sym - $ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip ./bin/nightly/Geode.${{ matrix.config.id }}.so + - name: Dump symbols + run: | + ${{ steps.breakpad-tools.outputs.binary-path }} ./bin/nightly/Geode.${{ matrix.config.id }}.so -o ./bin/nightly/Geode.${{ matrix.config.id }}.so.sym + $ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip ./bin/nightly/Geode.${{ matrix.config.id }}.so - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: geode-${{ matrix.config.id }} - path: ./bin/nightly + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: geode-${{ matrix.config.id }} + path: ./bin/nightly - - name: Complete Build Debug Info - uses: ./.github/actions/build-debug-info-post - with: - target: ${{ matrix.config.id }} - if: inputs.build-debug-info && (success() || failure()) + - name: Complete Build Debug Info + uses: ./.github/actions/build-debug-info-post + with: + target: ${{ matrix.config.id }} + if: inputs.build-debug-info && (success() || failure()) publish: name: Publish runs-on: ubuntu-latest needs: [ build-windows, build-mac, build-android ] if: github.ref == 'refs/heads/main' + steps: - - name: Checkout + - name: Checkout repository uses: actions/checkout@v4 - - name: Declare Version Variables + - name: Declare version variables id: ref run: | echo "version=$(cat VERSION | xargs)" >> $GITHUB_OUTPUT echo "hash=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_OUTPUT - - name: Download Artifacts + - name: Download artifacts uses: actions/download-artifact@v4 - - name: Move Installers + - name: Move installers run: | mv geode-installer-mac/geode-installer-mac.pkg geode-installer-${{ steps.ref.outputs.hash }}-mac.pkg mv geode-installer-win/geode-installer-win.exe geode-installer-${{ steps.ref.outputs.hash }}-win.exe - - name: Zip MacOS Artifacts + - name: Zip MacOS artifacts uses: vimtor/action-zip@v1.2 with: files: geode-mac/Geode.dylib geode-mac/GeodeBootstrapper.dylib dest: geode-${{ steps.ref.outputs.hash }}-mac.zip - - name: Zip Windows Artifacts + - name: Zip Windows artifacts uses: vimtor/action-zip@v1.2 with: files: geode-win/XInput1_4.dll geode-win/Geode.dll geode-win/GeodeUpdater.exe geode-win/Geode.lib geode-win/Geode.pdb dest: geode-${{ steps.ref.outputs.hash }}-win.zip - - name: Zip Android32 Artifacts + - name: Zip Android32 artifacts uses: vimtor/action-zip@v1.2 with: files: geode-android32/Geode.android32.so geode-android32/Geode.android32.so.sym dest: geode-${{ steps.ref.outputs.hash }}-android32.zip - - name: Zip Android64 Artifacts + - name: Zip Android64 artifacts uses: vimtor/action-zip@v1.2 with: files: geode-android64/Geode.android64.so geode-android64/Geode.android64.so.sym dest: geode-${{ steps.ref.outputs.hash }}-android64.zip - - name: Zip Resources + - name: Zip resources uses: vimtor/action-zip@v1.2 with: files: geode-android64/resources dest: resources.zip - - name: Update Development Release + - name: Update development release uses: andelf/nightly-release@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 9660667888eaa2bf3b74f108f08d317761f2dd43 Mon Sep 17 00:00:00 2001 From: larzie Date: Thu, 7 Nov 2024 16:07:12 +0300 Subject: [PATCH 2/7] Update changelog checker --- .github/workflows/check-changelog.yml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check-changelog.yml b/.github/workflows/check-changelog.yml index 752fc72b..f71b7286 100644 --- a/.github/workflows/check-changelog.yml +++ b/.github/workflows/check-changelog.yml @@ -1,5 +1,4 @@ -# check the changelog for non ascii characters -name: Check CHANGELOG.md +name: Check Changelog on: push: @@ -11,16 +10,19 @@ on: jobs: check: - name: Check CHANGELOG.md + name: Check Changelog runs-on: ubuntu-latest steps: - - name: Checkout + - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive - - - run: | - if grep -q -P -n "[\x80-\xFF]" CHANGELOG.md - then - exit 1; + + - name: Check for non-ASCII characters in changelog + run: | + if grep -q -P -n "[\x80-\xFF]" CHANGELOG.md; then + echo "Non-ASCII characters found in CHANGELOG.md" + exit 1 + else + echo "No non-ASCII characters found in CHANGELOG.md" fi From 23138cfc99a46ae0327227adc7af32917a04cbb3 Mon Sep 17 00:00:00 2001 From: larzie Date: Thu, 7 Nov 2024 16:11:40 +0300 Subject: [PATCH 3/7] Update draft release action --- .github/workflows/draft.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/draft.yml b/.github/workflows/draft.yml index 5969893a..5d19bc34 100644 --- a/.github/workflows/draft.yml +++ b/.github/workflows/draft.yml @@ -7,9 +7,10 @@ jobs: draft: name: Draft Release runs-on: ubuntu-latest + steps: - - name: Download Development Release - uses: robinraju/release-downloader@v1.9 + - name: Download development release + uses: robinraju/release-downloader@v1 with: tag: nightly fileName: '*' @@ -17,14 +18,14 @@ jobs: zipBall: true out-file-path: 'dev' - - name: Declare Version Variable + - name: Declare version variable id: ref shell: bash run: | VERSION=$(unzip -p ${{ github.workspace }}/dev/geode-nightly.zip geode-sdk-geode-*/VERSION | xargs) echo "version=$VERSION" >> $GITHUB_OUTPUT - # test if release already exists + # Test if release already exists set +e curl --fail "https://api.github.com/repos/geode-sdk/geode/releases/tags/v$VERSION" --silent --output /dev/null RESULT=$? @@ -35,7 +36,7 @@ jobs: exit 1 fi - - name: Move Files + - name: Move files run: | mv dev/geode-installer-*-win.exe geode-installer-v${{ steps.ref.outputs.version }}-win.exe mv dev/geode-installer-*-mac.pkg geode-installer-v${{ steps.ref.outputs.version }}-mac.pkg @@ -45,8 +46,8 @@ jobs: mv dev/geode-*-android64.zip geode-v${{ steps.ref.outputs.version }}-android64.zip mv dev/resources.zip resources.zip - - name: Create Draft Release - uses: softprops/action-gh-release@v1 + - name: Create draft release + uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -54,9 +55,9 @@ jobs: name: Geode v${{ steps.ref.outputs.version }} body: | TODO before publishing: - - mark if pre-release - - add changelog - - remove this + - Mark if pre-release + - Add changelog + - Remove this draft: true files: | ./geode-installer-v${{ steps.ref.outputs.version }}-win.exe From ba601d88550dcd6ba7e8ed66db7c3435df289723 Mon Sep 17 00:00:00 2001 From: larzie Date: Thu, 7 Nov 2024 16:12:46 +0300 Subject: [PATCH 4/7] Update site build CI --- .github/workflows/update-site.yml | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/.github/workflows/update-site.yml b/.github/workflows/update-site.yml index 2149fcae..7a49fddd 100644 --- a/.github/workflows/update-site.yml +++ b/.github/workflows/update-site.yml @@ -1,26 +1,22 @@ -# Update the install page on the geode-sdk/website repository name: Update Website on: - # # trigger when a new release is released - # release: - # types: - # - released - workflow_dispatch: jobs: trigger: name: Trigger site build runs-on: ubuntu-latest + steps: - - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GEODE_BOT_PUSH_BIN_TOKEN }} - script: | - await github.rest.actions.createWorkflowDispatch({ - owner: 'geode-sdk', - repo: 'website', - workflow_id: 'build.yml', - ref: 'main' - }) + - name: Trigger build workflow on geode-sdk/website repository + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GEODE_BOT_PUSH_BIN_TOKEN }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: 'geode-sdk', + repo: 'website', + workflow_id: 'build.yml', + ref: 'main' + }) From 8903fa0dff36a7e4b559c90115a9d53bd932ad61 Mon Sep 17 00:00:00 2001 From: larzie Date: Fri, 8 Nov 2024 13:10:46 +0300 Subject: [PATCH 5/7] Update build debug info post action --- .../actions/build-debug-info-post/action.yml | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/.github/actions/build-debug-info-post/action.yml b/.github/actions/build-debug-info-post/action.yml index 237cc8aa..645e2511 100644 --- a/.github/actions/build-debug-info-post/action.yml +++ b/.github/actions/build-debug-info-post/action.yml @@ -1,4 +1,4 @@ -name: Prepare for Build Debug Info +name: Prepare for Build Debug Info description: Provides debug info for the build process inputs: @@ -9,25 +9,33 @@ inputs: runs: using: "composite" steps: - - name: Preprocess - shell: bash - run: | - mkdir build-debug-info-preprocessed - cd build - sed 's/\\\\/\//g' compile_commands.json | sed 's/D:\//\/d\//' > uni_compile_commands.json - pip install compile-commands --break-system-packages - compile-commands --file=uni_compile_commands.json --filter_files='.*info\.rc.*' --filter='(.*) -o (.*)((?:/|\\).*)\.(?:obj|o) -c (.*)' --replacement="$BASH"' --noprofile --norc -c "mkdir -p ../build-debug-info-preprocessed/\g<2> && \g<1> -o ../build-debug-info-preprocessed/\g<2>\g<3>.i -E \g<4>"' -o ../build-debug-info/preprocess_commands.json --run --verbose + - name: Preprocess + shell: bash + run: | + mkdir build-debug-info-preprocessed + cd build + sed 's/\\\\/\//g' compile_commands.json | sed 's/D:\//\/d\//' > uni_compile_commands.json + pip install compile-commands --break-system-packages + compile-commands --file=uni_compile_commands.json \ + --filter_files='.*info\.rc.*' \ + --filter='(.*) -o (.*)((?:/|\\).*)\.(?:obj|o) -c (.*)' \ + --replacement="$BASH" \ + --noprofile --norc -c "\ + mkdir -p ../build-debug-info-preprocessed/\g<2> && \ + \g<1> -o ../build-debug-info-preprocessed/\g<2>\g<3>.i -E \g<4>"' \ + -o ../build-debug-info/preprocess_commands.json \ + --run --verbose - - name: Upload Build Debug Info - uses: actions/upload-artifact@v4 - with: - name: geode-build-debug-info-${{ inputs.target }} - path: ./build-debug-info/* - if: success() || failure() + - name: Upload Build Debug Info + uses: actions/upload-artifact@v4 + with: + name: geode-build-debug-info-${{ inputs.target }} + path: ./build-debug-info/* + if: success() || failure() - - name: Upload Preprocessed Files - uses: actions/upload-artifact@v4 - with: - name: geode-build-debug-info-preprocessed-${{ inputs.target }} - path: ./build-debug-info-preprocessed/* - if: success() || failure() + - name: Upload Preprocessed Files + uses: actions/upload-artifact@v4 + with: + name: geode-build-debug-info-preprocessed-${{ inputs.target }} + path: ./build-debug-info-preprocessed/* + if: success() || failure() From 179c3033ba8f3b42815fd283295d5972b459fbac Mon Sep 17 00:00:00 2001 From: larzie Date: Fri, 8 Nov 2024 14:19:10 +0300 Subject: [PATCH 6/7] Update build debug info action --- .github/actions/build-debug-info/action.yml | 30 +++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/.github/actions/build-debug-info/action.yml b/.github/actions/build-debug-info/action.yml index 4f2e65d9..f92b4c64 100644 --- a/.github/actions/build-debug-info/action.yml +++ b/.github/actions/build-debug-info/action.yml @@ -1,16 +1,18 @@ -name: Prepare for Build Debug Info +name: Prepare for Build Debug Info description: Provides debug info for the build process inputs: has-sccache: description: 'Whether the build action has sccache' required: true + outputs: extra-configure: description: 'Extra stuff for CMake configure step' value: | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON cp ./build/compile_commands.json ./build-debug-info/ + extra-build: description: 'Extra stuff for CMake build step' value: | @@ -20,17 +22,17 @@ outputs: runs: using: "composite" steps: - - name: Prepare - shell: bash - run: | - mkdir ./build-debug-info - echo "SCCACHE_ERROR_LOG=$GITHUB_WORKSPACE/build-debug-info/sccache-log.txt" >> $GITHUB_ENV - echo "SCCACHE_LOG=debug" >> $GITHUB_ENV - echo "RUST_BACKTRACE=1" >> $GITHUB_ENV + - name: Prepare + shell: bash + run: | + mkdir ./build-debug-info + echo "SCCACHE_ERROR_LOG=$GITHUB_WORKSPACE/build-debug-info/sccache-log.txt" >> $GITHUB_ENV + echo "SCCACHE_LOG=debug" >> $GITHUB_ENV + echo "RUST_BACKTRACE=1" >> $GITHUB_ENV - - name: Checkout ninjatracing - uses: actions/checkout@v4 - with: - repository: 'nico/ninjatracing' - path: ninjatracing - submodules: recursive + - name: Checkout ninjatracing repository + uses: actions/checkout@v4 + with: + repository: 'nico/ninjatracing' + path: ninjatracing + submodules: recursive From d86830028e3c4b5dec7703bbf92cda6eb75a1176 Mon Sep 17 00:00:00 2001 From: larzie Date: Fri, 8 Nov 2024 16:55:41 +0300 Subject: [PATCH 7/7] My bad :p --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aab20e49..c87133d7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ env: jobs: build-windows: name: Build Windows - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository