Skip to content

CI

CI #96

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Build at 00:00 on every 12th day-of-month.
schedule:
- cron: "0 0 */6 * *"
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ main ]
paths-ignore: [ '**/README.md' ]
pull_request:
branches: [ main ]
paths-ignore: [ '**/README.md' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build-stable"
build-stable:
# The type of runner that the job will run on
runs-on: ubuntu-20.04
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Prerequisites
run: |
echo $PATH
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install bison \
docutils-common \
flex \
gettext \
git \
gnutls-bin \
libaio-dev \
libbluetooth-dev \
libbrlapi-dev \
libbz2-dev \
libcap-ng-dev \
libcapstone-dev \
libcurl4-gnutls-dev \
libfdt-dev \
libglib2.0-dev \
libgnutls28-dev \
libgtk-3-dev \
libibverbs-dev \
libiscsi-dev \
libiscsi7 \
libjpeg8-dev \
liblzo2-dev \
libncurses5-dev \
libnfs* \
libnuma-dev \
libpciaccess-dev \
libpciaccess0 \
libpixman-1-0 \
libpixman-1-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libseccomp-dev \
libslirp-dev \
libslirp0 \
libsnappy-dev \
libspice-protocol-dev \
libspice-server-dev \
libspice-server1 \
libssh-dev \
libusb* \
libvde-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvirglrenderer1 \
libvte-2.91-dev \
libxen-dev \
libxml2-dev \
libxml2-utils \
libyajl-dev \
libyajl2 \
libzstd-dev \
libzstd1 \
ninja-build \
pip \
pkg-config \
python3-venv \
slirp* \
valgrind \
virgl-server \
xfslibs-dev \
xsltproc \
zlib1g-dev
wget -q "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" -O linuxdeploy ; chmod a+x linuxdeploy
wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O appimagetool ; chmod a+x appimagetool
sudo pip3 install meson
wget -c -q "https://download.gnome.org/sources/glib/2.80/glib-2.80.2.tar.xz"
tar -xf glib-2.80.2.tar.xz
cd glib-2.80.2
meson setup _build
meson compile -C _build
sudo meson install -C _build
mkdir -p lucas/usr/lib/
mkdir -p lucas/usr/share/
cp -r /usr/share/mime/ lucas/usr/share/
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure --disable-docs \
--enable-alsa \
--enable-gio \
--enable-gnutls \
--enable-gtk \
--enable-gtk-clipboard \
--enable-guest-agent \
--enable-kvm \
--enable-libssh \
--enable-libudev \
--enable-libusb \
--enable-modules \
--enable-nettle \
--enable-opengl \
--enable-pa \
--enable-pixman \
--enable-sdl \
--enable-slirp \
--enable-slirp-smbd \
--enable-spice \
--enable-spice-protocol \
--enable-system \
--enable-user \
--enable-virglrenderer \
--prefix=${GITHUB_WORKSPACE}/lucas/usr/
make
make install
cd ${GITHUB_WORKSPACE}
find -iname 'AppRun' | xargs -i -t -exec cp {} /home/runner/work/Qemu_Appimage/Qemu_Appimage/lucas/
find -iname 'qemu.desktop' | xargs -i -t -exec cp {} /home/runner/work/Qemu_Appimage/Qemu_Appimage/lucas/
find -iname 'qemu_logo_no_text.svg' | xargs -i -t -exec cp {} /home/runner/work/Qemu_Appimage/Qemu_Appimage/lucas/
find -iname 'libunionpreload.so' | xargs -i -t -exec cp {} /home/runner/work/Qemu_Appimage/Qemu_Appimage/lucas/
# Runs a set of commands using the runners shell
- name: Build appimage
run: |
find -name 'linuxdeploy**' -type f -exec {} --appdir ${GITHUB_WORKSPACE}/lucas/ \;
cd ${GITHUB_WORKSPACE} && cp qemu.desktop lucas/ && find lucas/ -depth -iname 'libglib-2.0.so.0' -type f -delete
ARCH=x86_64 find -name 'appimagetool**' -type f -exec {} ${GITHUB_WORKSPACE}/lucas/ \;
- name: release
uses: "marvinpinto/action-automatic-releases@6273874b61ebc8c71f1a61b2d98e234cf389b303"
with:
title: Continuous build
automatic_release_tag: continuous-stable
prerelease: false
draft: false
files: /home/runner/work/Qemu_Appimage/Qemu_Appimage/*.AppImage*
repo_token: "${{ secrets.GITHUB_TOKEN }}"