Add shared runner dependency setup for Linux and Windows
CI / Real Minecraft installs (manual) (push) Skipped
CI / Windows launcher (push) Failing after 13s
CI / Rust, web and container (push) Canceled after 0s
Server integrations / paper (push) Canceled after 0s
Server integrations / Fabric and Forge / 1.20.1 (push) Canceled after 0s
Server integrations / Fabric and Forge / 1.21.1 (push) Canceled after 0s
Server integrations / Fabric and Forge / 26.1.2 (push) Canceled after 0s
Server integrations / Fabric and Forge / 26.2 (push) Canceled after 0s
Server integrations / Fabric and Forge / 26.3 (push) Canceled after 0s

This commit is contained in:
SCOPEDD committed 2026-10-01 01:04:03 -04:00
1 parent 23ab34ab72
commit a378f9904c
7 files changed
+262 -83

No files matched your search

+36 -36
View File
@@ -53,57 +53,54 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- name: Verify Windows runner
shell: pwsh
run: |
if (-not $IsWindows) { throw 'windows-latest must be a Windows host runner' }
foreach ($tool in @('cargo', 'node', 'npm')) {
if (-not (Get-Command $tool -ErrorAction SilentlyContinue)) { throw "Missing $tool" }
}
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
key: release
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: launcher/package-lock.json
- name: Install Windows build dependencies
shell: powershell
run: .\scripts\ci\install-windows.ps1
- uses: Swatinem/rust-cache@v2
with:
key: release
- name: Stamp version
shell: bash
shell: pwsh
env:
VERSION: ${{ needs.version.outputs.version }}
run: |
sed -i "0,/^version = \".*\"/s//version = \"$VERSION\"/" Cargo.toml
node -e "const f='launcher/src-tauri/tauri.conf.json';const c=require('./'+f);c.version=process.env.VERSION;require('fs').writeFileSync(f,JSON.stringify(c,null,2))"
node -e "const f='launcher/package.json';const c=require('./'+f);c.version=process.env.VERSION;require('fs').writeFileSync(f,JSON.stringify(c,null,2))"
$cargo = Get-Content Cargo.toml -Raw
$cargo = [regex]::new('(?m)^version = ".*"').Replace($cargo, 'version = "' + $env:VERSION + '"', 1)
[IO.File]::WriteAllText((Join-Path (Get-Location) 'Cargo.toml'), $cargo)
node -e "for(const f of ['launcher/src-tauri/tauri.conf.json','launcher/package.json']){const fs=require('fs');const c=JSON.parse(fs.readFileSync(f));c.version=process.env.VERSION;fs.writeFileSync(f,JSON.stringify(c,null,2))}"
- run: npm ci --no-audit --no-fund
working-directory: launcher
- name: Build installer
working-directory: launcher
shell: bash
shell: pwsh
env:
SCOPENET_PANEL_URL: ${{ vars.PANEL_URL }}
SCOPENET_LOCK_PANEL: ${{ vars.LOCK_PANEL }}
SCOPENET_REPO: ${{ gitea.server_url }}/${{ gitea.repository }}
LAUNCHER_NAME: ${{ vars.LAUNCHER_NAME }}
run: |
if [ -n "$LAUNCHER_NAME" ]; then
CONFIG=$(node -e "console.log(JSON.stringify({productName: process.env.LAUNCHER_NAME, app: {windows: [{...require('./src-tauri/tauri.conf.json').app.windows[0], title: process.env.LAUNCHER_NAME}]}}))")
npx tauri build --bundles nsis --config "$CONFIG"
else
if ($env:LAUNCHER_NAME) {
$config = node -e "console.log(JSON.stringify({productName: process.env.LAUNCHER_NAME, app: {windows: [{...require('./src-tauri/tauri.conf.json').app.windows[0], title: process.env.LAUNCHER_NAME}]}}))"
npx tauri build --bundles nsis --config $config
} else {
npx tauri build --bundles nsis
fi
}
if ($LASTEXITCODE -ne 0) { throw "Installer build failed with exit code $LASTEXITCODE" }
- name: Collect installer
shell: bash
shell: pwsh
run: |
mkdir -p out
cp target/release/bundle/nsis/*-setup.exe out/
ls -la out
New-Item -ItemType Directory -Force out | Out-Null
Copy-Item target/release/bundle/nsis/*-setup.exe out/
Get-ChildItem out
- uses: actions/upload-artifact@v4
with:
@@ -117,17 +114,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Verify container runner
run: |
test "$(uname -s)" = Linux
command -v docker
docker info >/dev/null
docker buildx version >/dev/null
- name: Image name
run: echo "IMAGE=${GITHUB_SERVER_URL#https://}/${GITHUB_REPOSITORY_OWNER,,}/scopenet-mc-panel" >> "$GITEA_ENV"
- name: Stamp version
run: sed -i "0,/^version = \".*\"/s//version = \"${{ needs.version.outputs.version }}\"/" Cargo.toml
- id: docker
run: |
if command -v docker >/dev/null && docker info >/dev/null 2>&1; then
echo 'ready=true' >> "$GITEA_OUTPUT"
else
echo 'ready=false' >> "$GITEA_OUTPUT"
fi
- uses: docker/setup-docker-action@v5
if: steps.docker.outputs.ready != 'true'
- uses: docker/setup-buildx-action@v3
- name: Check Linux container dependencies
run: bash scripts/ci/install-linux.sh image
- uses: docker/login-action@v3
with:
registry: gitea.jadonsandbox.com
@@ -162,11 +164,9 @@ jobs:
needs: [version, launcher, panel-image, server-integrations]
runs-on: ubuntu-latest
steps:
- name: Verify release runner
run: |
test "$(uname -s)" = Linux
command -v curl
command -v jq
- uses: actions/checkout@v5
- name: Install Linux release dependencies
run: bash scripts/ci/install-linux.sh release
- uses: actions/download-artifact@v4
with:
name: windows-installer