mirror of
https://github.com/AntiMicroX/antimicrox.git
synced 2025-12-23 23:29:25 -05:00
197 lines
8.7 KiB
YAML
197 lines
8.7 KiB
YAML
name: Release
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
# Build .deb files for debian-based systems.
|
|
build_deb:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: Ubuntu 24-04
|
|
image: ubuntu-24.04
|
|
- name: Ubuntu 22-04
|
|
image: ubuntu-22.04
|
|
name: Build deb package ${{ matrix.name }}
|
|
runs-on: ${{ matrix.image }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Dependencies with QT5
|
|
if: matrix.image != 'ubuntu-24.04'
|
|
run: sudo apt-get update && sudo apt-get install extra-cmake-modules qttools5-dev qttools5-dev-tools libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext
|
|
|
|
- name: Install Dependencies with QT6
|
|
if: matrix.image == 'ubuntu-24.04'
|
|
run: sudo apt-get update && sudo apt-get install extra-cmake-modules qt6-base-dev qt6-tools-dev-tools libqt6core5compat6-dev qt6-tools-dev libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext
|
|
|
|
- name: Configure CMake
|
|
run: cmake -DCPACK_GENERATOR="DEB" -DCMAKE_BUILD_TYPE=Release -DCHECK_FOR_UPDATES=ON -DANTIMICROX_PKG_VERSION="GitHub deb Release" -B ${{ github.workspace }}/build
|
|
|
|
- name: Create Deb package
|
|
id: create_deb
|
|
run: cmake --build ${{ github.workspace }}/build --parallel 8 --target package
|
|
|
|
- name: Rename deb files
|
|
id: rename_debs
|
|
run: |
|
|
FILE=`find ${{ github.workspace }}/build/*.deb`
|
|
NEWFILE=`echo $FILE | sed 's/x86_64/${{ matrix.image }}-x86_64/'`
|
|
mv $FILE $NEWFILE
|
|
|
|
# Upload generated files to release
|
|
- name: Upload binaries to release
|
|
uses: AButler/upload-release-assets@v3.0
|
|
with:
|
|
files: ${{ github.workspace }}/build/*.deb
|
|
repo-token: ${{ github.token }}
|
|
|
|
# Build universal and portable AppImage package.
|
|
build-appimage:
|
|
# Version of ubuntu building this appimage, it shouldn't be the latest verion of ubuntu to avoid breaking compatibility with older systems
|
|
name: Build AppImage package
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install extra-cmake-modules qttools5-dev qttools5-dev-tools libsdl2-dev libxi-dev libxtst-dev libx11-dev itstool gettext qt5-default zsync
|
|
|
|
#Replace original library with the newer one
|
|
- name: Build and install newer SDL2
|
|
run: |
|
|
git clone https://github.com/libsdl-org/SDL.git -b release-2.30.6
|
|
cd SDL
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
cmake --build .
|
|
sudo cmake --install .
|
|
sudo cp /usr/local/lib/libSDL2-2.0.so.0 /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Prepare files needed to create AppImage
|
|
run: |
|
|
mkdir build && cd ./build
|
|
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
|
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
|
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
|
chmod +x linuxdeploy-x86_64.AppImage
|
|
chmod +x appimagetool-x86_64.AppImage
|
|
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
|
|
|
|
- name: Build AntiMicroX
|
|
run: |
|
|
VERSION=`cat ./CMakeLists.txt | grep "set(ANTIMICROX_" | grep _VERSION | cut -d " " -f 2 | cut -d ")" -f 1`
|
|
MAJOR=`echo $VERSION | cut -d " " -f 1`
|
|
MINOR=`echo $VERSION | cut -d " " -f 2`
|
|
PATCH=`echo $VERSION | cut -d " " -f 3`
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DANTIMICROX_PKG_VERSION="$MAJOR.$MINOR.$PATCH-x86_64 GitHub AppImage Release"
|
|
make install DESTDIR=AppDir -j8
|
|
|
|
# UPDATE_INFORMATION describes where information about updates can be found
|
|
- name: Create AppImage file
|
|
run: |
|
|
cd build
|
|
export UPDATE_INFORMATION="zsync|https://github.com/$GITHUB_REPOSITORY/releases/latest/download/antimicrox-x86_64.AppImage.zsync"
|
|
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
|
|
./appimagetool-x86_64.AppImage AppDir/ -u "$UPDATE_INFORMATION"
|
|
|
|
# Upload generated files to release
|
|
- name: Upload binaries to release
|
|
uses: AButler/upload-release-assets@v3.0
|
|
with:
|
|
files: ./build/AntiMicroX*.AppImage;./build/AntiMicroX*.zsync
|
|
repo-token: ${{ github.token }}
|
|
|
|
- name: Build AntiMicroX-debug
|
|
run: |
|
|
VERSION=`cat ./CMakeLists.txt | grep "set(ANTIMICROX_" | grep _VERSION | cut -d " " -f 2 | cut -d ")" -f 1`
|
|
MAJOR=`echo $VERSION | cut -d " " -f 1`
|
|
MINOR=`echo $VERSION | cut -d " " -f 2`
|
|
PATCH=`echo $VERSION | cut -d " " -f 3`
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DANTIMICROX_PKG_VERSION="$MAJOR.$MINOR.$PATCH-debug-x86_64 \(AppImage-debug\)"
|
|
make install DESTDIR=AppDir -j8
|
|
|
|
- name: Create AppImage debug file
|
|
run: |
|
|
cd build
|
|
./linuxdeploy-x86_64.AppImage --appdir AppDir --plugin qt
|
|
./appimagetool-x86_64.AppImage AppDir/
|
|
mv AntiMicroX-x86_64.AppImage AntiMicroX-debug-x86_64.AppImage
|
|
|
|
# Upload generated files to release
|
|
- name: Upload binaries to release
|
|
uses: AButler/upload-release-assets@v3.0
|
|
with:
|
|
files: ./build/AntiMicroX*.AppImage
|
|
repo-token: ${{ github.token }}
|
|
|
|
build-windows-packages:
|
|
name: Create Windows packages
|
|
runs-on: windows-2022
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Dependencies
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
install: >-
|
|
mingw-w64-x86_64-toolchain
|
|
mingw-w64-x86_64-ninja
|
|
mingw-w64-x86_64-nsis
|
|
mingw-w64-x86_64-openssl
|
|
mingw-w64-x86_64-cmake
|
|
msystem: mingw64
|
|
release: false
|
|
# mingw-w64-x86_64-SDL2 not installed above because of: https://github.com/AntiMicroX/antimicrox/issues/465
|
|
# SDL2 version for release locked
|
|
- name: Install sdl2
|
|
run: |
|
|
curl -L -o mingw-w64-x86_64-SDL2-2.30.6-1-any.pkg.tar.zst https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-SDL2-2.30.6-1-any.pkg.tar.zst
|
|
pacman --noconfirm -U mingw-w64-x86_64-SDL2-2.30.6-1-any.pkg.tar.zst
|
|
|
|
- name: Install Qt
|
|
uses: jurplel/install-qt-action@v4
|
|
with:
|
|
version: "5.15.2"
|
|
host: "windows"
|
|
target: "desktop"
|
|
arch: "win64_mingw81"
|
|
dir: "${{ github.workspace }}/qt/"
|
|
install-deps: "true"
|
|
|
|
- name: Configure CMake
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release -DCHECK_FOR_UPDATES=ON -DANTIMICROX_PKG_VERSION="GitHub Windows Release" -B '${{ github.workspace }}'/build
|
|
env:
|
|
CMAKE_PREFIX_PATH: "${{ env.QT_ROOT_DIR }}/lib/cmake"
|
|
|
|
- name: Build Installer
|
|
run: cmake --build '${{ github.workspace }}'/build --target package --parallel 8
|
|
|
|
- name: Configure CMake (portable)
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release -DCHECK_FOR_UPDATES=ON -DANTIMICROX_PKG_VERSION="GitHub Portable Windows Release" -DPORTABLE_WIN=ON -B '${{ github.workspace }}'/build
|
|
env:
|
|
CMAKE_PREFIX_PATH: "${{ env.QT_ROOT_DIR }}/lib/cmake"
|
|
|
|
- name: Build ZIP Package
|
|
run: cmake --build '${{ github.workspace }}'/build --target package --parallel 8
|
|
|
|
- name: Upload binaries to release
|
|
uses: AButler/upload-release-assets@v3.0
|
|
with:
|
|
files: build/antimicrox*.exe;build/antimicrox*.zip
|
|
repo-token: ${{ github.token }}
|