diff options
| author | rtm516 <rtm516@users.noreply.github.com> | 2026-03-17 21:39:22 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-17 16:39:22 -0500 |
| commit | 02a5961f39673be403fda3edbf6fb1265bd93477 (patch) | |
| tree | ade5f3cfd70fcb6e0add6492f182cc571bec7f3a /.github/workflows/nightly.yml | |
| parent | 1a3fcb5b2010fbbf5ef0ab52f7291a4129f05842 (diff) | |
Move project to CMake (#781)
* Move to cmake
* Move sources to source_groups and ditch more old VS files
* Add BuildVer.h generation
* Break out cmake source lists to platforms
* Don't copy swf files
* Revert audio changes from merge
* Add platform defines
* Match MSBuild flags
* Move BuildVer.h to common include and fix rebuild issue
* Seperate projects properly
* Exclude more files and make sure GameHDD exists
* Missing line
* Remove remaining VS project files
* Update readme and actions
* Use incremental LTCG
* Update workflows
* Update build workflows and output folder
* Disable vcpkg checks
* Force MSVC
* Use precompiled headers
* Only use PCH for cpp
* Exclude compat_shims from PCH
* Handle per-platform source includes
* Copy only current platform media
* Define Iggy libs per platform
* Fix EnsureGameHDD check
* Only set WIN32_EXECUTABLE on Windows
* Correct Iggy libs path
* Remove include of terrain_MipmapLevel
* Correct path to xsb/xwb
* Implement copilot suggestions
* Add clang flags (untested)
* Fix robocopy error checking
* Update documentation
* Drop CMakePresets.json version as we dont use v6 features
* Always cleanup artifacts in nightly even if some builds fail
* Re-work compiler target options
* Move newer iggy dll into redist and cleanup
* Fix typos
* Remove 'Source Files' from all source groups
* Remove old ps1 build scripts
Diffstat (limited to '.github/workflows/nightly.yml')
| -rw-r--r-- | .github/workflows/nightly.yml | 91 |
1 files changed, 61 insertions, 30 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5af23fe6..ad3a816a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,41 +1,80 @@ -name: Nightly Releases +name: Nightly Release on: workflow_dispatch: push: branches: - 'main' - - 'feature/dedicated-server' paths-ignore: - '.gitignore' - '*.md' - - '.github/*.md' + - '.github/**' + - '!.github/workflows/nightly.yml' permissions: contents: write jobs: build: - name: Build Windows64 runs-on: windows-latest + strategy: + matrix: + platform: [Windows64] + steps: - name: Checkout uses: actions/checkout@v6 - - name: Setup msbuild - uses: microsoft/setup-msbuild@v2 + - name: Set platform lowercase + run: echo "PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV - - name: Build - run: MSBuild.exe MinecraftConsoles.sln /p:Configuration=Release /p:Platform="Windows64" + - name: Setup MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Setup CMake + uses: lukka/get-cmake@latest + + - name: Run CMake + uses: lukka/run-cmake@v10 + env: + VCPKG_ROOT: "" # Disable vcpkg for CI builds + with: + configurePreset: ${{ env.PLATFORM }} + buildPreset: ${{ env.PLATFORM }}-release + buildPresetAdditionalArgs: "['--target', 'Minecraft.Client']" - name: Zip Build - run: 7z a -r LCEWindows64.zip ./x64/Release/* + run: 7z a -r LCE${{ matrix.platform }}.zip ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/* -x!*.ipdb -x!*.iobj + + - name: Stage artifacts + run: | + New-Item -ItemType Directory -Force -Path staging + Copy-Item LCE${{ matrix.platform }}.zip staging/ + + - name: Stage exe and pdb + if: matrix.platform == 'Windows64' + run: | + Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Client/Release/Minecraft.Client.exe staging/ + + - name: Upload artifacts + uses: actions/upload-artifact@v6 + with: + name: build-${{ matrix.platform }} + path: staging/* + + release: + needs: build + runs-on: ubuntu-latest - - name: Zip Dedicated Server Build - run: 7z a -r LCEServerWindows64.zip ./x64/Minecraft.Server/Release/* + steps: + - name: Download all artifacts + uses: actions/download-artifact@v7 + with: + path: artifacts + merge-multiple: true - - name: Update Client release + - name: Update release uses: andelf/nightly-release@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -43,27 +82,19 @@ jobs: tag_name: nightly name: Nightly Client Release body: | - Requires at least Windows 7 and DirectX 11 compatible GPU to run. Compiled with MSVC v14.44.35207 in Release mode with Whole Program Optimization, as well as `/O2 /Ot /Oi /Ob3 /GF /fp:precise`. + Requires at least Windows 7 and DirectX 11 compatible GPU to run. # 🚨 First time here? 🚨 If you've never downloaded the game before, you need to download `LCEWindows64.zip` and extract it to the folder where you'd like to keep the game. The other files are included in this `.zip` file! files: | - LCEWindows64.zip - ./x64/Release/Minecraft.Client.exe - ./x64/Release/Minecraft.Client.pdb + artifacts/* - - name: Update Dedicated Server release - uses: andelf/nightly-release@main - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + cleanup: + needs: [build, release] + if: always() + runs-on: ubuntu-latest + steps: + - name: Cleanup artifacts + uses: geekyeggo/delete-artifact@v5 with: - tag_name: nightly-dedicated-server - name: Nightly Dedicated Server Release - body: | - Dedicated Server runtime for Windows64. - - Download `LCEServerWindows64.zip` and extract it to a folder where you'd like to keep the server runtime. - files: | - LCEServerWindows64.zip - ./x64/Minecraft.Server/Release/Minecraft.Server.exe - ./x64/Minecraft.Server/Release/Minecraft.Server.pdb + name: build-* |
