Fix/engine fixes v7 support #1186
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/ |