name: Nightly Release on: workflow_dispatch: push: branches: - 'main' paths-ignore: - '.gitignore' - '*.md' - '.github/**' - '!.github/workflows/nightly.yml' permissions: contents: write concurrency: group: nightly cancel-in-progress: true jobs: build: runs-on: windows-latest strategy: matrix: platform: [Windows64] steps: - name: Checkout uses: actions/checkout@v6 - name: Set platform lowercase run: echo "MATRIX_PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV - 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.MATRIX_PLATFORM }} buildPreset: ${{ env.MATRIX_PLATFORM }}-release buildPresetAdditionalArgs: "['--target', 'Minecraft.Client']" - name: Zip Build run: 7z a -r LCE${{ matrix.platform }}.zip ./build/${{ env.MATRIX_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.MATRIX_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 steps: - name: Download all artifacts uses: actions/download-artifact@v7 with: path: artifacts merge-multiple: true - name: Update release uses: andelf/nightly-release@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: nightly name: Nightly Client Release body: | 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: | artifacts/* cleanup: needs: [build, release] if: always() runs-on: ubuntu-latest steps: - name: Cleanup artifacts uses: geekyeggo/delete-artifact@v5 with: name: build-*