aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml73
1 files changed, 54 insertions, 19 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d2ccc59e..793b081e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,7 +1,12 @@
-name: build_portable
+name: Build
on:
- [push, pull_request, workflow_dispatch]
+ workflow_call:
+ inputs:
+ build_type:
+ description: Type of build (Debug, Release, RelWithDebInfo, MinSizeRel)
+ type: string
+ default: Debug
jobs:
build:
@@ -11,8 +16,13 @@ jobs:
include:
- os: ubuntu-20.04
+ qt_version: 5.12.8
+ qt_host: linux
+
+ - os: ubuntu-20.04
qt_version: 5.15.2
qt_host: linux
+ app_image: true
- os: windows-2022
qt_version: 5.15.2
@@ -59,6 +69,12 @@ jobs:
copy "${{ github.workspace }}\Qt\Tools\OpenSSL\Win_x86\bin\libssl-1_1.dll" "${{ github.workspace }}\${{ env.INSTALL_DIR }}\"
copy "${{ github.workspace }}\Qt\Tools\OpenSSL\Win_x86\bin\libcrypto-1_1.dll" "${{ github.workspace }}\${{ env.INSTALL_DIR }}\"
+ - name: Set short version
+ shell: bash
+ run: |
+ ver_short=`git rev-parse --short HEAD`
+ echo "VERSION=$ver_short" >> $GITHUB_ENV
+
- name: Install OpenJDK
uses: AdoptOpenJDK/install-jdk@v1
with:
@@ -72,6 +88,7 @@ jobs:
key: ${{ runner.os }}-${{ matrix.qt_version }}-${{ matrix.qt_arch }}-qt_cache
- name: Install Qt
+ if: runner.os != 'Linux' || matrix.app_image == true
uses: jurplel/install-qt-action@v2
with:
version: ${{ matrix.qt_version }}
@@ -80,18 +97,23 @@ jobs:
cached: ${{ steps.cache-qt.outputs.cache-hit }}
dir: "${{ github.workspace }}/Qt/"
+ - name: Install System Qt on Linux
+ if: runner.os == 'Linux' && matrix.app_image != true
+ run: |
+ sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5
+
- name: Install Ninja
uses: urkle/action-get-ninja@v1
- - name: Download linuxdeploy family
- if: runner.os == 'Linux'
+ - name: Download linuxdeploy family for AppImage on Linux
+ if: matrix.app_image == true
run: |
wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
wget "https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage"
wget "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage"
- name: Download JREs for AppImage on Linux
- if: runner.os == 'Linux'
+ if: matrix.app_image == true
shell: bash
run: |
${{ github.workspace }}/.github/scripts/prepare_JREs.sh
@@ -99,12 +121,12 @@ jobs:
- name: Configure CMake
if: runner.os != 'Linux'
run: |
- cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=Debug -G Ninja
+ cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -G Ninja
- name: Configure CMake on Linux
if: runner.os == 'Linux'
run: |
- cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DLauncher_LAYOUT=lin-system -G Ninja
+ cmake -S . -B ${{ env.BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ inputs.build_type }} -DLauncher_LAYOUT=lin-system -G Ninja
- name: Build
run: |
@@ -115,16 +137,16 @@ jobs:
run: |
cmake --install ${{ env.BUILD_DIR }}
- - name: Install for AppImage on Linux
+ - name: Install on Linux
if: runner.os == 'Linux'
run: |
DESTDIR=${{ env.INSTALL_DIR }} cmake --install ${{ env.BUILD_DIR }}
- name: Bundle AppImage
- if: runner.os == 'Linux'
+ if: matrix.app_image == true
shell: bash
run: |
- export OUTPUT="PolyMC-${{ github.sha }}-x86_64.AppImage"
+ export OUTPUT="PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage"
chmod +x linuxdeploy-*.AppImage
@@ -145,13 +167,13 @@ jobs:
- name: Run windeployqt
if: runner.os == 'Windows'
run: |
- windeployqt --no-translations "${{ env.INSTALL_DIR }}/polymc.exe"
+ windeployqt --no-translations --no-system-d3d-compiler --no-opengl-sw "${{ env.INSTALL_DIR }}/polymc.exe"
- name: Run macdeployqt
if: runner.os == 'macOS'
run: |
cd ${{ env.INSTALL_DIR }}
- macdeployqt "PolyMC.app" -executable="PolyMC.app/Contents/MacOS/polymc" -always-overwrite -use-debug-libs
+ macdeployqt "PolyMC.app" -executable="PolyMC.app/Contents/MacOS/polymc" -always-overwrite
- name: chmod binary on macOS
if: runner.os == 'macOS'
@@ -162,25 +184,38 @@ jobs:
if: runner.os == 'macOS'
run: |
cd ${{ env.INSTALL_DIR }}
- tar -czf ../polymc.tar.gz *
+ tar -czf ../PolyMC.tar.gz *
+
+ - name: tar on Linux
+ if: runner.os == 'Linux' && matrix.app_image != true
+ run: |
+ cd ${{ env.INSTALL_DIR }}
+ tar -czf ../PolyMC.tar.gz *
+
+ - name: Upload Linux tar.gz
+ if: runner.os == 'Linux' && matrix.app_image != true
+ uses: actions/upload-artifact@v2
+ with:
+ name: PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}
+ path: PolyMC.tar.gz
- name: Upload AppImage for Linux
- if: runner.os == 'Linux'
+ if: matrix.app_image == true
uses: actions/upload-artifact@v2
with:
- name: PolyMC-${{ github.sha }}-x86_64.AppImage
- path: PolyMC-${{ github.sha }}-x86_64.AppImage
+ name: PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
+ path: PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
- name: Upload package for Windows
if: runner.os == 'Windows'
uses: actions/upload-artifact@v2
with:
- name: polymc-${{ runner.os }}-${{ github.sha }}-portable
+ name: PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}
path: ${{ env.INSTALL_DIR }}/**
- name: Upload package for macOS
if: runner.os == 'macOS'
uses: actions/upload-artifact@v2
with:
- name: polymc-${{ runner.os }}-${{ github.sha }}-portable
- path: polymc.tar.gz
+ name: PolyMC-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}
+ path: PolyMC.tar.gz