Skip to content
This repository has been archived by the owner on Oct 7, 2024. It is now read-only.

Update build.yml

Update build.yml #17

Workflow file for this run

name: Build OpenHack
on:
push:
branches:
- "**"
pull_request:
branches:
- "**"
env:
BUILD_TYPE: RelWithDebInfo
jobs:
geode:
strategy:
fail-fast: false
matrix:
config:
- name: Windows
os: windows-latest
name: Geode OpenHack
runs-on: ${{ matrix.config.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build the mod
uses: prevter/build-geode-mod@main
with:
combine: true
ccache-variant: ''
export-pdb: true
build-config: ${{env.BUILD_TYPE}}
configure-args: "-DBUILD_STANDALONE=OFF"
target: ${{ matrix.config.target }}
package-geode:
name: Package Geode Mod
runs-on: ubuntu-latest
needs: ['geode']
steps:
- uses: prevter/build-geode-mod/combine@main
id: build
- uses: actions/upload-artifact@v4
with:
name: OpenHack-Geode
path: ${{ steps.build.outputs.build-output }}
standalone:
name: Vanilla OpenHack
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Ninja
shell: bash
run: |
curl -L https://github.com/ninja-build/ninja/releases/latest/download/ninja-win.zip -o ninja.zip
7z x ninja.zip -o"$GITHUB_WORKSPACE/ninja"
echo "$GITHUB_WORKSPACE/ninja" >> $GITHUB_PATH
- name: Update LLVM
shell: bash
run: |
curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/LLVM-17.0.6-win64.exe -o llvm-inst.exe
7z x llvm-inst.exe -ollvm bin/clang.exe bin/clang++.exe bin/lld-link.exe bin/llvm-rc.exe bin/*.dll lib/clang/*/include/*
echo "$GITHUB_WORKSPACE/llvm/bin" >> $GITHUB_PATH
- name: Configure CMake and build
id: build
shell: bash
run: |
mkdir -p $HOME/.sccache
export CFLAGS="--target=i686-windows-msvc"
export CXXFLAGS="--target=i686-windows-msvc"
export LDFLAGS="--target=i686-windows-msvc"
cmake -B build -DBUILD_GEODE=OFF -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
cmake --build build --config ${{env.BUILD_TYPE}}
- name: Save artifacts
uses: actions/upload-artifact@v4
with:
name: OpenHack-Standalone
path: ${{github.workspace}}/bin
package:
name: Create Nightly Release
runs-on: ubuntu-latest
needs: ['standalone', 'package-geode']
steps:
- name: actions/download-artifact@v4
with:
path: ${{ github.workspace }}/bin
merge-multiple: true
- name: Prepare standalone zip
run: |
mkdir -p ${{ github.workspace }}/bin/standalone
cp -r ${{ github.workspace }}/bin/openhack ${{ github.workspace }}/bin/standalone/openhack
cp ${{ github.workspace }}/bin/xinput9_1_0.dll ${{ github.workspace }}/bin/standalone/xinput9_1_0.dll
- name: Package standalone
run: |
7z a -tzip ${{ github.workspace }}/bin/OpenHack-Nightly.zip ${{ github.workspace }}/bin/standalone
- name: Create nightly release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: nightly
name: 'Development Release'
body: |
This is a nightly build of OpenHack for commit ${{ github.sha }}.\nYou can use this build to test the latest features and changes.
files: |
${{ github.workspace }}/bin/OpenHack-Nightly.zip
${{ github.workspace }}/bin/prevter.openhack.geode
${{ github.workspace }}/bin/prevter.openhack.pdb
${{ github.workspace }}/bin/xinput9_1_0.dll