aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/nightly-server.yml
diff options
context:
space:
mode:
authorrtm516 <ryantmilner@hotmail.co.uk>2026-03-17 22:02:24 +0000
committerrtm516 <ryantmilner@hotmail.co.uk>2026-03-17 22:02:24 +0000
commit76f4832a6b66c63f7f065d6ff0ccf6ccee77d9d1 (patch)
treeb89b89590e17202aa6d8a2418a592677ddd56180 /.github/workflows/nightly-server.yml
parent02a5961f39673be403fda3edbf6fb1265bd93477 (diff)
Fix actions and sort docker nightly
Diffstat (limited to '.github/workflows/nightly-server.yml')
-rw-r--r--.github/workflows/nightly-server.yml78
1 files changed, 73 insertions, 5 deletions
diff --git a/.github/workflows/nightly-server.yml b/.github/workflows/nightly-server.yml
index a55a2a62..23ea2cb7 100644
--- a/.github/workflows/nightly-server.yml
+++ b/.github/workflows/nightly-server.yml
@@ -13,6 +13,11 @@ on:
permissions:
contents: write
+ packages: write
+
+concurrency:
+ group: nightly-server
+ cancel-in-progress: true
jobs:
build:
@@ -27,7 +32,7 @@ jobs:
uses: actions/checkout@v6
- name: Set platform lowercase
- run: echo "PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV
+ run: echo "MATRIX_PLATFORM=$('${{ matrix.platform }}'.ToLower())" >> $env:GITHUB_ENV
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
@@ -40,12 +45,12 @@ jobs:
env:
VCPKG_ROOT: "" # Disable vcpkg for CI builds
with:
- configurePreset: ${{ env.PLATFORM }}
- buildPreset: ${{ env.PLATFORM }}-release
+ configurePreset: ${{ env.MATRIX_PLATFORM }}
+ buildPreset: ${{ env.MATRIX_PLATFORM }}-release
buildPresetAdditionalArgs: "['--target', 'Minecraft.Server']"
- name: Zip Build
- run: 7z a -r LCEServer${{ matrix.platform }}.zip ./build/${{ env.PLATFORM }}/Minecraft.Server/Release/* -x!*.ipdb -x!*.iobj
+ run: 7z a -r LCEServer${{ matrix.platform }}.zip ./build/${{ env.MATRIX_PLATFORM }}/Minecraft.Server/Release/* -x!*.ipdb -x!*.iobj
- name: Stage artifacts
run: |
@@ -55,7 +60,7 @@ jobs:
- name: Stage exe and pdb
if: matrix.platform == 'Windows64'
run: |
- Copy-Item ./build/${{ env.PLATFORM }}/Minecraft.Server/Release/Minecraft.Server.exe staging/
+ Copy-Item ./build/${{ env.MATRIX_PLATFORM }}/Minecraft.Server/Release/Minecraft.Server.exe staging/
- name: Upload artifacts
uses: actions/upload-artifact@v6
@@ -88,6 +93,69 @@ jobs:
files: |
artifacts/*
+ docker-publish:
+ name: Build and Push Docker Image
+ runs-on: ubuntu-latest
+ needs: build
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Download dedicated server runtime from artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: build-Windows64
+ path: .artifacts/
+
+ - name: Prepare Docker runtime directory
+ shell: bash
+ run: |
+ set -euo pipefail
+
+ rm -rf runtime
+ mkdir -p runtime
+ unzip .artifacts/LCEServerWindows64.zip -d runtime
+
+ - name: Compute image name
+ id: image
+ shell: bash
+ run: |
+ owner="$(echo "${{ vars.CONTAINER_REGISTRY_OWNER || github.repository_owner }}" | tr '[:upper:]' '[:lower:]')"
+ image_tag="nightly"
+ # if [[ "${{ github.ref }}" != "refs/heads/main" ]]; then
+ # image_tag="nightly-test"
+ # fi
+ echo "owner=$owner" >> "$GITHUB_OUTPUT"
+ echo "image=ghcr.io/$owner/minecraft-lce-dedicated-server" >> "$GITHUB_OUTPUT"
+ echo "image_tag=$image_tag" >> "$GITHUB_OUTPUT"
+
+ - name: Extract Docker metadata
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ steps.image.outputs.image }}
+ tags: |
+ type=raw,value=${{ steps.image.outputs.image_tag }}
+
+ - name: Login to GHCR
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ secrets.GHCR_USERNAME || github.actor }}
+ password: ${{ secrets.GHCR_TOKEN || secrets.GITHUB_TOKEN }}
+
+ - name: Build and push image
+ uses: docker/build-push-action@v6
+ with:
+ context: .
+ file: docker/dedicated-server/Dockerfile
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ build-args: |
+ MC_RUNTIME_DIR=runtime
+
cleanup:
needs: [build, release]
if: always()