1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-06-27 23:14:05 +00:00
GLideN64/.github/workflows/build.yml
2021-09-26 17:41:34 +07:00

233 lines
9.8 KiB
YAML

name: GLideN64
on: [push, pull_request, workflow_dispatch]
jobs:
Linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Packages
run: |
sudo apt-get -qq update
sudo apt-get -y upgrade
sudo apt-get -y install build-essential libgl1-mesa-dev qt5-default
- name: Prepare Environment
run: |
echo "GIT_REVISION=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Build GLideN64 (x64 Mupen64Plus-CLI)
run: |
mkdir -p build/linux-mupen64plus-cli
pushd build/linux-mupen64plus-cli
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DMUPENPLUSAPI=1 -DMUPENPLUSAPI_GLIDENUI=0 ../../src/
make -j$(nproc)
popd
cp build/linux-mupen64plus-cli/plugin/Release/*.so build/linux-mupen64plus-cli/
cp ini/GLideN64.custom.ini build/linux-mupen64plus-cli/
- name: Build GLideN64 (x64 Mupen64Plus-Qt)
run: |
mkdir -p build/linux-mupen64plus-qt
pushd build/linux-mupen64plus-qt
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DMUPENPLUSAPI=1 -DMUPENPLUSAPI_GLIDENUI=1 ../../src/
make -j$(nproc)
popd
cp build/linux-mupen64plus-qt/plugin/Release/*.so build/linux-mupen64plus-qt/
cp ini/GLideN64.custom.ini build/linux-mupen64plus-qt/
cp translations/release/*.qm build/linux-mupen64plus-qt/
- name: Upload GLideN64 (x64 Mupen64Plus-CLI)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Linux-Mupen64Plus-CLI-x64
path: |
build/linux-mupen64plus-cli/*.so
build/linux-mupen64plus-cli/GLideN64.custom.ini
- name: Upload GLideN64 (x64 Mupen64Plus-Qt)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Linux-Mupen64Plus-Qt-x64
path: |
build/linux-mupen64plus-qt/*.so
build/linux-mupen64plus-qt/GLideN64.custom.ini
build/linux-mupen64plus-qt/*.qm
Windows:
runs-on: windows-latest
env:
QTDIR_x86: C:\Static_Qt_x86
QTDIR_x64: C:\Static_Qt_x64
QT_BUILD_BASE_URL: https://github.com/gonetz/GLideN64/releases/download/qt_build/
QT_BUILD_x86: qt-5_15-x86-msvc2017-static
QT_BUILD_x64: qt-5_15-x64-msvc2017-static
steps:
- uses: actions/checkout@v2
- uses: microsoft/setup-msbuild@v1.0.3
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
make
mingw-w64-x86_64-cmake
mingw-w64-x86_64-gcc
mingw-w64-x86_64-freetype
mingw-w64-x86_64-libpng
mingw-w64-x86_64-qt5
git
- name: Prepare Environment
run: |
$env:revision = git rev-parse --short HEAD
echo "PJ64PluginsDirQT=$pwd\build\windows-project64-qt\" >> $env:GITHUB_ENV
echo "PJ64PluginsDirQT_x64=$pwd\build\windows-project64-qt-x64\" >> $env:GITHUB_ENV
echo "PJ64PluginsDirWTL=$pwd\build\windows-project64-wtl\" >> $env:GITHUB_ENV
echo "PJ64PluginsDirWTL_x64=$pwd\build\windows-project64-wtl-x64\" >> $env:GITHUB_ENV
echo "Mupen64PluginsDir=$pwd\build\windows-mupen64plus-cli\" >> $env:GITHUB_ENV
echo "Mupen64PluginsDir_x64=$pwd\build\windows-mupen64plus-cli-x64\" >> $env:GITHUB_ENV
echo "GIT_REVISION=$env:revision" >> $env:GITHUB_ENV
shell: pwsh
- name: Prepare Qt Builds
run: |
curl -L -o %QT_BUILD_x86%.7z %QT_BUILD_BASE_URL%/%QT_BUILD_x86%.7z
curl -L -o %QT_BUILD_x64%.7z %QT_BUILD_BASE_URL%/%QT_BUILD_x64%.7z
7z x -o%QTDIR_x86% %QT_BUILD_x86%.7z
7z x -o%QTDIR_x64% %QT_BUILD_x64%.7z
shell: cmd
- name: Build GLideN64 (x64 Project64-Qt)
run: |
set QTDIR=%QTDIR_x64%\%QT_BUILD_x64%
msbuild projects/msvc/GLideNUI.vcxproj /m /p:Configuration=Release;Platform=x64
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_qt;Platform=x64
copy ini\GLideN64.custom.ini %PJ64PluginsDirQT_x64%
copy translations\release\*.qm %PJ64PluginsDirQT_x64%
shell: cmd
- name: Build GLideN64 (x86 Project64-Qt)
run: |
set QTDIR=%QTDIR_x86%\%QT_BUILD_x86%
msbuild projects/msvc/GLideNUI.vcxproj /m /p:Configuration=Release;Platform=Win32
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_qt;Platform=Win32
copy ini\GLideN64.custom.ini %PJ64PluginsDirQT%
copy translations\release\*.qm %PJ64PluginsDirQT%
shell: cmd
- name: Build GLideN64 (x64 Project64-WTL)
run: |
msbuild projects/msvc/GLideNUI-wtl.vcxproj /m /p:Configuration=Release;Platform=x64
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_wtl;Platform=x64
copy ini\GLideN64.custom.ini %PJ64PluginsDirWTL_x64%
mkdir %PJ64PluginsDirWTL_x64%\translations
copy translations\wtl\*.Lang %PJ64PluginsDirWTL_x64%\translations
shell: cmd
- name: Build GLideN64 (x86 Project64-WTL)
run: |
msbuild projects/msvc/GLideNUI-wtl.vcxproj /m /p:Configuration=Release;Platform=Win32
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_wtl;Platform=Win32
copy ini\GLideN64.custom.ini %PJ64PluginsDirWTL%
mkdir %PJ64PluginsDirWTL%\translations
copy translations\wtl\*.Lang %PJ64PluginsDirWTL%\translations
shell: cmd
- name: Build GLideN64 (x64 Mupen64Plus-CLI)
run: |
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_mupenplus;Platform=x64
copy ini\GLideN64.custom.ini %Mupen64PluginsDir_x64%\
shell: cmd
- name: Build GLideN64 (x86 Mupen64Plus-CLI)
run: |
msbuild projects/msvc/GLideN64.sln /m /p:Configuration=Release_mupenplus;Platform=Win32
copy ini\GLideN64.custom.ini %Mupen64PluginsDir%\
shell: cmd
- name: Build GLideN64 (x64 Mupen64Plus-Qt)
run: |
mkdir -p build/windows-mupen64plus-qt
pushd build/windows-mupen64plus-qt
cmake -DCMAKE_BUILD_TYPE=Release -DMUPENPLUSAPI=1 -DMUPENPLUSAPI_GLIDENUI=1 -G "MSYS Makefiles" ../../src
make -j$(nproc)
popd
cp ini/GLideN64.custom.ini build/windows-mupen64plus-qt/
cp translations/release/*.qm build/windows-mupen64plus-qt/
shell: msys2 {0}
- name: Upload GLideN64 (x64 Project64-Qt)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Project64-Qt-x64
path: |
build\windows-project64-qt-x64\*.dll
build\windows-project64-qt-x64\GLideN64.custom.ini
build\windows-project64-qt-x64\*.qm
- name: Upload GLideN64 (x86 Project64-Qt)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Project64-Qt-x86
path: |
build\windows-project64-qt\*.dll
build\windows-project64-qt\GLideN64.custom.ini
build\windows-project64-qt\*.qm
- name: Upload GLideN64 (x64 Project64-WTL)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Project64-WTL-x64
path: |
build\windows-project64-wtl-x64\*.dll
build\windows-project64-wtl-x64\GLideN64.custom.ini
build\windows-project64-wtl-x64\translations\*.Lang
- name: Upload GLideN64 (x86 Project64-WTL)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Project64-WTL-x86
path: |
build\windows-project64-wtl\*.dll
build\windows-project64-wtl\GLideN64.custom.ini
build\windows-project64-wtl\translations\*.Lang
- name: Upload GLideN64 (x64 Mupen64Plus-CLI)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Mupen64Plus-CLI-x64
path: |
build\windows-mupen64plus-cli-x64\*.dll
build\windows-mupen64plus-cli-x64\GLideN64.custom.ini
- name: Upload GLideN64 (x86 Mupen64Plus-CLI)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Mupen64Plus-CLI-x86
path: |
build\windows-mupen64plus-cli\*.dll
build\windows-mupen64plus-cli\GLideN64.custom.ini
- name: Upload GLideN64 (x64 Mupen64Plus-Qt)
uses: actions/upload-artifact@v2
with:
name: GLideN64-${{ env.GIT_REVISION }}-Windows-Mupen64Plus-Qt-x64
path: |
build\windows-mupen64plus-qt\*.dll
build\windows-mupen64plus-qt\GLideN64.custom.ini
build\windows-mupen64plus-qt\*.qm
Release:
runs-on: ubuntu-latest
needs: [Windows, Linux]
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v2
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
# sadly we can't download the artifacts without extracting it
# so re-zip them
- name: Re-Package Artifacts
run: |
cd artifacts
for artifact in *
do
echo "-> Creating ${artifact}.zip"
pushd "$artifact"
zip -r "../${artifact}.zip" *
popd
done
- name: Update Git Tag
run: |
git tag -f github-actions
git push -f origin github-actions
- name: Create Release
uses: ncipollo/release-action@v1
with:
prerelease: true
allowUpdates: true
removeArtifacts: true
replacesArtifacts: false
tag: github-actions
artifacts: "artifacts/*.zip"