forked from JACoders/OpenJK
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Based on: JACoders#1173
- Loading branch information
Showing
1 changed file
with
132 additions
and
67 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,17 +3,15 @@ name: build | |
on: | ||
workflow_dispatch: | ||
push: | ||
branches: [master] | ||
branches: [rend2-builds] | ||
paths-ignore: | ||
- "**.md" | ||
- "*.txt" | ||
- ".gitignore" | ||
- "docs/*" | ||
pull_request: | ||
branches: [master] | ||
branches: [rend2-builds] | ||
paths-ignore: | ||
- "**.md" | ||
- "*.txt" | ||
- ".gitignore" | ||
- "docs/*" | ||
release: | ||
|
@@ -44,35 +42,44 @@ jobs: | |
uses: microsoft/[email protected] | ||
|
||
- name: Create Build Environment | ||
run: cmake -E make_directory ${{ runner.workspace }}/build | ||
run: cmake -E make_directory ${{ github.workspace }}/build | ||
|
||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
run: | | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=bin" | ||
if [ "${{ matrix.portable }}" == "Portable" ]; then | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DBuildPortableVersion=ON -DCMAKE_INSTALL_PREFIX=bin" | ||
OPTIONS+=" -DBuildPortableVersion=ON" | ||
else | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DBuildPortableVersion=OFF -DCMAKE_INSTALL_PREFIX=bin" | ||
OPTIONS+=" -DBuildPortableVersion=OFF" | ||
fi | ||
OPTIONS+=" -DBuildJK2SPEngine=ON -DBuildJK2SPGame=ON -DBuildJK2SPRdVanilla=ON --DBuildJK2SPRdRend2=ON" | ||
cmake $GITHUB_WORKSPACE -A ${{ matrix.platform }} $OPTIONS | ||
- name: Build | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --build . --config ${{ matrix.build_type }} | ||
run: cmake --build . --config ${{ matrix.build_type }} -j $NUMBER_OF_PROCESSORS | ||
|
||
- name: Install | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --install . --config ${{ matrix.build_type }} | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJK-windows-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ runner.workspace }}/build/bin | ||
path: ${{ github.workspace }}/build/bin/JediAcademy | ||
if-no-files-found: error | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJO-windows-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ github.workspace }}/build/bin/JediOutcast | ||
if-no-files-found: error | ||
|
||
msvcxp: | ||
|
@@ -110,36 +117,44 @@ jobs: | |
uses: microsoft/[email protected] | ||
|
||
- name: Create Build Environment | ||
run: cmake -E make_directory ${{ runner.workspace }}/build | ||
run: cmake -E make_directory ${{ github.workspace }}/build | ||
|
||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
run: | | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=bin" | ||
if [ "${{ matrix.portable }}" == "Portable" ]; then | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DBuildPortableVersion=ON -DCMAKE_INSTALL_PREFIX=bin" | ||
OPTIONS+=" -DBuildPortableVersion=ON" | ||
else | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DBuildPortableVersion=OFF -DCMAKE_INSTALL_PREFIX=bin" | ||
OPTIONS+=" -DBuildPortableVersion=OFF" | ||
fi | ||
OPTIONS+=" -DBuildJK2SPEngine=ON -DBuildJK2SPGame=ON -DBuildJK2SPRdVanilla=ON" | ||
cmake $GITHUB_WORKSPACE -T v141_xp -A ${{ matrix.platform }} $OPTIONS | ||
- name: Build | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --build . --config ${{ matrix.build_type }} | ||
run: cmake --build . --config ${{ matrix.build_type }} -j $NUMBER_OF_PROCESSORS | ||
|
||
- name: Install | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: | | ||
cmake --install . --config ${{ matrix.build_type }} | ||
run: cmake --install . --config ${{ matrix.build_type }} | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJK-windowsxp-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ runner.workspace }}/build/bin | ||
path: ${{ github.workspace }}/build/bin/JediAcademy | ||
if-no-files-found: error | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJO-windowsxp-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ github.workspace }}/build/bin/JediOutcast | ||
if-no-files-found: error | ||
|
||
ubuntu: | ||
|
@@ -168,52 +183,59 @@ jobs: | |
sudo apt-get -qq update | ||
sudo apt-get install libjpeg-dev libpng-dev zlib1g-dev libsdl2-dev | ||
fi | ||
cmake -E make_directory ${{ runner.workspace }}/build | ||
cmake -E make_directory ${{ github.workspace }}/build | ||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
run: | | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install" | ||
if [ "${{ matrix.portable }}" == "Portable" ]; then | ||
OPTIONS="-DUseInternalLibs=ON -DBuildPortableVersion=ON -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install" | ||
OPTIONS+=" -DUseInternalLibs=ON -DBuildPortableVersion=ON" | ||
else | ||
OPTIONS="-DUseInternalLibs=OFF -DBuildPortableVersion=OFF -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install" | ||
OPTIONS+=" -DUseInternalLibs=OFF -DBuildPortableVersion=OFF" | ||
fi | ||
if [ ${{ matrix.arch }} == "x86" ]; then | ||
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} $OPTIONS -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/linux-i686.cmake | ||
else | ||
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} $OPTIONS | ||
OPTIONS+=" -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/linux-i686.cmake" | ||
fi | ||
OPTIONS+=" -DBuildJK2SPEngine=ON -DBuildJK2SPGame=ON -DBuildJK2SPRdVanilla=ON" | ||
cmake $GITHUB_WORKSPACE $OPTIONS | ||
- name: Build | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --build . | ||
run: cmake --build . -j $(nproc) | ||
|
||
- name: Install | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --install . | ||
|
||
- name: Create binary archive | ||
if: ${{ matrix.build_type == 'Release'}} | ||
working-directory: ${{ runner.workspace }}/install/JediAcademy | ||
- name: Create OpenJK binary archive | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ github.workspace }}/install/JediAcademy | ||
shell: bash | ||
run: | | ||
if [ ${{ matrix.arch }} == "x86" ]; then | ||
chmod +x openjk.i386 | ||
else | ||
chmod +x openjk.${{ matrix.arch }} | ||
fi | ||
tar -czvf OpenJK-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
run: tar -czvf OpenJK-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
|
||
- name: Create OpenJO binary archive | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ github.workspace }}/install/JediOutcast | ||
shell: bash | ||
run: tar -czvf OpenJO-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJK-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{runner.workspace}}/install/JediAcademy/OpenJK-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
path: ${{github.workspace}}/install/JediAcademy/OpenJK-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
if-no-files-found: error | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJO-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{github.workspace}}/install/JediOutcast/OpenJO-linux-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
if-no-files-found: error | ||
|
||
macos: | ||
|
@@ -232,47 +254,64 @@ jobs: | |
- name: Create Build Environment | ||
run: | | ||
brew install zlib libjpeg libpng sdl2 | ||
cmake -E make_directory ${{ runner.workspace }}/build | ||
cmake -E make_directory ${{ github.workspace }}/build | ||
- name: Configure CMake | ||
shell: bash | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
run: | | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install" | ||
if [ "${{ matrix.portable }}" == "Portable" ]; then | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DUseInternalLibs=ON -DBuildPortableVersion=ON -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install" | ||
OPTIONS+=" -DUseInternalLibs=ON -DBuildPortableVersion=ON" | ||
else | ||
OPTIONS="-DCMAKE_BUILD_TYPE=${{ runner.build_type }} -DUseInternalLibs=OFF -DBuildPortableVersion=OFF -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/install" | ||
OPTIONS+=" -DUseInternalLibs=OFF -DBuildPortableVersion=OFF" | ||
fi | ||
OPTIONS+=" -DBuildJK2SPEngine=ON -DBuildJK2SPGame=ON -DBuildJK2SPRdVanilla=ON" | ||
cmake $GITHUB_WORKSPACE $OPTIONS | ||
- name: Build | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --build . | ||
run: cmake --build . -j $(getconf _NPROCESSORS_ONLN) | ||
|
||
- name: Install | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ runner.workspace }}/build | ||
working-directory: ${{ github.workspace }}/build | ||
shell: bash | ||
run: cmake --install . | ||
|
||
- name: Create binary archive | ||
- name: Create OpenJK binary archive | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ runner.workspace }}/install/JediAcademy | ||
working-directory: ${{ github.workspace }}/install/JediAcademy | ||
shell: bash | ||
run: | | ||
chmod +x openjk.x86_64.app/Contents/MacOS/openjk.x86_64 | ||
tar -czvf openjk-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
tar -czvf openjk-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
- name: Create OpenJO binary archive | ||
if: ${{ matrix.build_type == 'Release' }} | ||
working-directory: ${{ github.workspace }}/install/JediOutcast | ||
shell: bash | ||
run: | | ||
chmod +x openjo_sp.x86_64.app/Contents/MacOS/openjo_sp.x86_64 | ||
tar -czvf openjo_sp-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz * | ||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJK-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ runner.workspace }}/install/JediAcademy/openjk-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
path: ${{ github.workspace }}/install/JediAcademy/openjk-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
if-no-files-found: error | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ matrix.build_type == 'Release' }} | ||
with: | ||
name: OpenJO-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }} | ||
path: ${{ github.workspace }}/install/JediOutcast/openjo_sp-macos-${{ matrix.arch }}-${{ matrix.build_type }}-${{ matrix.portable }}.tar.gz | ||
if-no-files-found: error | ||
|
||
create-latest: | ||
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | ||
if: github.event_name == 'workflow_dispatch' | ||
needs: [msvc, ubuntu, macos] | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
|
@@ -285,19 +324,25 @@ jobs: | |
|
||
- name: Create binary archives | ||
run: | | ||
7z a -r OpenJK-windows-x86.zip ./OpenJK-windows-x86-Release-Non-Portable/JediAcademy/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
7z a -r OpenJK-windows-x86_64.zip ./OpenJK-windows-x86_64-Release-Non-Portable/JediAcademy/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
mv ./OpenJK-linux-x86-Release-Non-Portable/* OpenJK-linux-x86.tar.gz | ||
mv ./OpenJK-linux-x86_64-Release-Non-Portable/* OpenJK-linux-x86_64.tar.gz | ||
mv ./OpenJK-macos-x86_64-Release-Non-Portable/* OpenJK-macos-x86_64.tar.gz | ||
7z a -r OpenJK-rend2-windows-x86.zip ./OpenJK-windows-x86-Release-Non-Portable/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
7z a -r OpenJK-rend2-windows-x86_64.zip ./OpenJK-windows-x86_64-Release-Non-Portable/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
mv ./OpenJK-linux-x86-Release-Non-Portable/* OpenJK-rend2-linux-x86.tar.gz | ||
mv ./OpenJK-linux-x86_64-Release-Non-Portable/* OpenJK-rend2-linux-x86_64.tar.gz | ||
mv ./OpenJK-macos-x86_64-Release-Non-Portable/* OpenJK-rend2-macos-x86_64.tar.gz | ||
7z a -r OpenJO-windows-x86.zip ./OpenJO-rend2-windows-x86-Release-Non-Portable/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
7z a -r OpenJO-windows-x86_64.zip ./OpenJO-rend2-windows-x86_64-Release-Non-Portable/* '-x!msvcp*.*' '-x!vcruntime*.*' '-x!concrt*.*' | ||
mv ./OpenJO-linux-x86-Release-Non-Portable/* OpenJO-rend2-linux-x86.tar.gz | ||
mv ./OpenJO-linux-x86_64-Release-Non-Portable/* OpenJO-rend2-linux-x86_64.tar.gz | ||
mv ./OpenJO-macos-x86_64-Release-Non-Portable/* OpenJO-rend2-macos-x86_64.tar.gz | ||
- name: Create latest build | ||
uses: marvinpinto/action-automatic-releases@latest | ||
with: | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
automatic_release_tag: "latest" | ||
prerelease: false | ||
title: Latest Build | ||
title: Latest rend2 builds | ||
files: | | ||
*.zip | ||
*.tar.gz | ||
|
@@ -311,23 +356,43 @@ jobs: | |
matrix: | ||
include: | ||
- artifact_dir: OpenJK-windows-x86-Release-Non-Portable/JediAcademy | ||
artifact_name: OpenJK-windows-x86.zip | ||
artifact_name: OpenJK-rend2-windows-x86.zip | ||
zip: true | ||
|
||
- artifact_dir: OpenJK-windows-x86_64-Release-Non-Portable/JediAcademy | ||
artifact_name: OpenJK-windows-x86_64.zip | ||
artifact_name: OpenJK-rend2-windows-x86_64.zip | ||
zip: true | ||
|
||
- artifact_dir: OpenJK-linux-x86-Release-Non-Portable | ||
artifact_name: OpenJK-linux-x86.tar.gz | ||
artifact_name: OpenJK-rend2-linux-x86.tar.gz | ||
zip: false | ||
|
||
- artifact_dir: OpenJK-linux-x86_64-Release-Non-Portable | ||
artifact_name: OpenJK-linux-x86_64.tar.gz | ||
artifact_name: OpenJK-rend2-linux-x86_64.tar.gz | ||
zip: false | ||
|
||
- artifact_dir: OpenJK-macos-x86_64-Release-Non-Portable | ||
artifact_name: OpenJK-macos-x86_64.tar.gz | ||
artifact_name: OpenJK-rend2-macos-x86_64.tar.gz | ||
zip: false | ||
|
||
- artifact_dir: OpenJO-windows-x86-Release-Non-Portable/JediOutcast | ||
artifact_name: OpenJO-rend2-windows-x86.zip | ||
zip: true | ||
|
||
- artifact_dir: OpenJO-windows-x86_64-Release-Non-Portable/JediOutcast | ||
artifact_name: OpenJO-rend2-windows-x86_64.zip | ||
zip: true | ||
|
||
- artifact_dir: OpenJO-linux-x86-Release-Non-Portable | ||
artifact_name: OpenJO-rend2-linux-x86.tar.gz | ||
zip: false | ||
|
||
- artifact_dir: OpenJO-linux-x86_64-Release-Non-Portable | ||
artifact_name: OpenJO-rend2-linux-x86_64.tar.gz | ||
zip: false | ||
|
||
- artifact_dir: OpenJO-macos-x86_64-Release-Non-Portable | ||
artifact_name: OpenJO-rend2-macos-x86_64.tar.gz | ||
zip: false | ||
|
||
steps: | ||
|