From 5a72e0f1e10fc941bbe2aa5d6f93e17bca0529b5 Mon Sep 17 00:00:00 2001 From: "K. S. Ernest (iFire) Lee" Date: Tue, 29 Oct 2024 00:10:49 -0700 Subject: [PATCH] Mock the build. --- .github/workflows/build.yaml | 149 ++++++++++++++++++++++++----------- 1 file changed, 103 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b8ccf97a..36bd5427 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -35,52 +35,61 @@ jobs: - name: Set up dependencies run: dnf install -y just git - - name: Checkout code - uses: actions/checkout@v4 - - - name: Cache SCons cache - uses: actions/cache@v4 - if: always() - with: - path: | - .scons_cache - emsdk - osxcross - jdk - android_sdk - vulkan_sdk - mingw - key: ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }} - restore-keys: | - ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }} - ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }} - ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }} - ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-refs/heads/${{ env.GODOT_BASE_BRANCH }} - ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }} - - - uses: bencherdev/bencher@main - - - name: Fetch dependencies and Build Platform Target + - name: Set up placeholders run: | - just install_packages - export PLATFORM_ARGS="" - case "${{ matrix.platform }}" in - android) - PLATFORM_ARGS="fetch-openjdk setup-android-sdk" - ;; - web) - PLATFORM_ARGS="setup-emscripten" - ;; - windows) - PLATFORM_ARGS="fetch-llvm-mingw" - ;; - macos) - PLATFORM_ARGS="build-osxcross fetch-vulkan-sdk" - ;; - *) - PLATFORM_ARGS="nil" - ;; - esac + mkdir -p godot/bin/ + mkdir -p tpz/ + mkdir -p editor + echo "This is the README for the Godot bin directory." > godot/bin/readme.md + echo "This is the README for the TPZ directory." > tpz/readme.md + echo "This is the README for the Editor directory." > editor/readme.md + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Cache SCons cache + uses: actions/cache@v4 + if: always() + with: + path: | + .scons_cache + emsdk + osxcross + jdk + android_sdk + vulkan_sdk + mingw + key: ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }} + restore-keys: | + ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }}-${{ matrix.platform }}-${{ matrix.target }} + ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }}-${{ github.sha }} + ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-${{ github.ref }} + ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }}-refs/heads/${{ env.GODOT_BASE_BRANCH }} + ${{ env.CACHE_NAME }}-${{ env.GODOT_BASE_BRANCH }} + + - uses: bencherdev/bencher@main + + - name: Fetch dependencies and Build Platform Target + run: | + just install_packages + export PLATFORM_ARGS="" + case "${{ matrix.platform }}" in + android) + PLATFORM_ARGS="fetch-openjdk setup-android-sdk" + ;; + web) + PLATFORM_ARGS="setup-emscripten" + ;; + windows) + PLATFORM_ARGS="fetch-llvm-mingw" + ;; + macos) + PLATFORM_ARGS="build-osxcross fetch-vulkan-sdk" + ;; + *) + PLATFORM_ARGS="nil" + ;; + esac bencher run \ --project 'v-sekai-world' \ --adapter shell_hyperfine \ @@ -97,7 +106,8 @@ jobs: --github-actions '${{ secrets.GITHUB_TOKEN }}' \ --ci-only-on-alert \ --file results.json \ - "hyperfine --show-output --runs 1 --export-json results.json 'just $PLATFORM_ARGS && just build-platform-target ${{ matrix.platform }} ${{ matrix.target }}'" + "hyperfine --show-output --runs 1 --export-json results.json 'just $PLATFORM_ARGS && just build-platform-target ${{ matrix.platform }} ${{ matrix.target }}'" + - name: Upload Artifacts uses: actions/upload-artifact@v4 with: @@ -115,3 +125,50 @@ jobs: with: name: Godot-${{ matrix.platform }}-${{ matrix.target }} path: editor + + merge: + runs-on: ubuntu-latest + needs: build + steps: + - name: Merge Artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: v-sekai-world + delete-merged: true + + release: + runs-on: ubuntu-latest + needs: merge + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + steps: + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: latest.v-sekai-editor-${{ github.run_number }} + release_name: Latest Release of V-Sekai World Editor + draft: false + prerelease: true + + - name: Download Artifacts + uses: actions/download-artifact@v4 + with: + path: v-sekai-world + name: v-sekai-world + + - name: Zip Artifacts + run: | + tree + zip -r v-sekai-world.zip v-sekai-world + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./v-sekai-world.zip + asset_name: v-sekai-world.zip + asset_content_type: application/zip