diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0d925ac..482f677 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,6 +2,7 @@ name: "Build and Test" on: push: + pull_request: schedule: # Build and test daily. - cron: 0 11 * * * @@ -135,6 +136,10 @@ jobs: BITS: ${{ matrix.arch == 'x86_64' && 64 || 32 }} run: | cd addons/godot_xterm/native/thirdparty/libuv + # Clean only CMake configuration files to avoid stale cache issues + mkdir -p build + rm -f build/CMakeCache.txt + rm -rf build/CMakeFiles args="-DCMAKE_BUILD_TYPE=$TARGET -DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ -DCMAKE_OSX_ARCHITECTURES=x86_64;arm64" if [ "$TARGET" == "release" ]; then @@ -145,7 +150,6 @@ jobs: if [ "$BITS" -eq 32 -a "$PLATFORM" == "windows" ]; then cmake -G "Visual Studio 17 2022" -A Win32 -S $(pwd) -B "build" $args else - mkdir build || true cd build if [ "$BITS" -eq 32 ]; then args="$args -DCMAKE_SYSTEM_PROCESSOR=i686 -DCMAKE_C_FLAGS=-m32"; fi cmake .. $args @@ -209,10 +213,12 @@ jobs: - name: Export for web shell: bash run: godot --no-window --export-release Web - - name: NPM cache - uses: c-hive/gha-npm-cache@v1 + - name: Setup Node.js + uses: actions/setup-node@v4 with: - directory: test/web + node-version: "20" + cache: "npm" + cache-dependency-path: test/web/package-lock.json - name: Smoke test Web export shell: bash working-directory: test/web @@ -350,6 +356,7 @@ jobs: run: godot --editor --headless --quit-after 100 || true - name: Wait for build uses: fountainhead/action-wait-for-check@v1.2.0 + id: wait-for-build with: token: ${{ secrets.GITHUB_TOKEN }} checkName: "Build (linux, x86_64, release) #${{ github.run_number }}" @@ -360,8 +367,10 @@ jobs: path: addons/godot_xterm/native/bin merge-multiple: true - name: Benchmark + if: steps.wait-for-build.outputs.conclusion == 'success' shell: bash run: just bench ${{matrix.benchmark}} + timeout-minutes: 2 - name: Upload results uses: actions/upload-artifact@v4 with: @@ -400,7 +409,7 @@ jobs: tool: "customSmallerIsBetter" output-file-path: benchmark/results/all.json external-data-json-path: ./cache/benchmark-data.json - alert-threshold: "20%" + alert-threshold: "120%" fail-threshold: "200%" github-token: ${{ secrets.GITHUB_TOKEN }} comment-on-alert: true diff --git a/.gitmodules b/.gitmodules index 0c376d6..eb2349e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,4 +12,4 @@ url = https://github.com/microsoft/node-pty [submodule "benchmark/vtebench"] path = benchmark/vtebench - url = git@github.com:alacritty/vtebench + url = https://github.com/alacritty/vtebench