Skip to content

Fix/engine fixes v7 support #1186

Fix/engine fixes v7 support

Fix/engine fixes v7 support #1186

Workflow file for this run

name: Build windows
on:
pull_request:
push:
branches:
- master
- prerel
workflow_call:
inputs:
build-mode:
required: true
type: string
default: 'releasedbg'
upload-build-for-next-job:
required: true
type: boolean
default: false
outputs:
str-version:
description: "Skyrim Together version string"
value: ${{ jobs.build.outputs.version }}
jobs:
build:
strategy:
matrix:
os: [windows-latest]
arch: [x64]
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'ci skip')"
outputs:
version: ${{ steps.output-version.outputs.version }}
steps:
- uses: actions/checkout@v4
with:
# We need full history in order to create a version string (BuildInfo.h)
fetch-depth: 0
- name: Checkout submodules
run: |
git submodule sync --recursive
git submodule update --init --force --recursive --depth=1
- name: Checkout master on tag push
if: github.ref_type == 'tag'
# Checkout only if the tag was pushed to master
run: (git rev-parse HEAD) -eq (git rev-parse origin/master) -and (git checkout master)
- name: Cache xmake dependencies
uses: actions/cache@v4
with:
path: ~/AppData/Local/.xmake/packages
key: ${{ runner.os }}-xmake-${{ hashFiles('**/xmake.lua') }}
# Install xmake
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: 2.9.8
actions-cache-folder: '.xmake-cache' # This doesn't cache dependencies, only xmake itself
actions-cache-key: ${{ matrix.os }}
- name: Configure xmake and install dependencies
run: xmake config --arch=${{ matrix.arch }} --mode=${{ inputs.build-mode }} --yes -vD
# Build the client
- name: Build with xmake
run: |
xmake -y
echo "STR_BUILD_DIR=build/windows/${{ matrix.arch }}/${{ inputs.build-mode }}/" >> $env:GITHUB_ENV
# Create distrib
- name: Output distrib binaries via xmake
run: |
xmake install -o distrib
cp -Force -Recurse distrib/bin/* ${{ env.STR_BUILD_DIR }}
# Building the Together UI
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/iron
cache-dependency-path: Code/skyrim_ui/pnpm-lock.yaml
cache: 'pnpm'
- name: Build the UI
run: |
pnpm --prefix Code/skyrim_ui/ install
pnpm --prefix Code/skyrim_ui/ deploy:production
cp -r Code/skyrim_ui/dist/UI ${{ env.STR_BUILD_DIR }}
- id: output-version
run: echo "version=$(git describe --tags)" >> $env:GITHUB_OUTPUT
- name: Upload build files for the next job
if: ${{ inputs.upload-build-for-next-job }}
uses: actions/upload-artifact@v4
with:
name: internal-job-files
retention-days: 1
path: |
${{ env.STR_BUILD_DIR }}
GameFiles/Skyrim/