Skip to content

AntiMicroX-3.4.0

AntiMicroX-3.4.0 #25

Workflow file for this run

name: Release
on:
release:
types: [published]
jobs:
# Build .deb files for debian-based systems.
build_deb:
strategy:
fail-fast: false
matrix:
include:
- name: Ubuntu 22-04
image: ubuntu-22.04
- name: Ubuntu 20-04
image: ubuntu-20.04
name: Build deb package ${{ matrix.name }}
runs-on: ${{ matrix.image }}
steps:
- uses: actions/checkout@v3
- 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
- name: Configure CMake
run: cmake -DCPACK_GENERATOR="DEB" -DCMAKE_BUILD_TYPE=Release -DCHECK_FOR_UPDATES=ON -DANTIMICROX_PKG_VERSION="GitHub 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@v2.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-20.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.1
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@v3
- 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 \(AppImage\)"
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@v2.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@v2.0
with:
files: ./build/AntiMicroX*.AppImage
repo-token: ${{ github.token }}
build-windows-packages:
name: Create Windows packages
runs-on: windows-2019
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
- 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
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.1-1-any.pkg.tar.zst https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-SDL2-2.30.1-1-any.pkg.tar.zst
pacman --noconfirm -U mingw-w64-x86_64-SDL2-2.30.1-1-any.pkg.tar.zst
- name: Install Qt
uses: jurplel/install-qt-action@v3
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.Qt5_Dir}}
- 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.Qt5_Dir}}
- name: Build ZIP Package
run: cmake --build '${{ github.workspace }}'/build --target package --parallel 8
- name: Upload binaries to release
uses: AButler/upload-release-assets@v2.0
with:
files: build/antimicrox*.exe;build/antimicrox*.zip
repo-token: ${{ github.token }}