Skip to content

Update AppRun

Update AppRun #3

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 */12 * *"
# Triggers the workflow on push or pull request events but only for the master branch
push:
#branches: [ main,q ]
paths-ignore: [ '**/README.md' ]
pull_request:
#branches: [ main,q ]
paths-ignore: [ '**/README.md' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# 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
- name: Checkout repository
uses: actions/checkout@v4
- name: Cache dependencies
uses: actions/cache@v2
with:
path: /var/cache/apt
key: ${{ runner.os }}-apt-${{ hashFiles('**/apt-lock.txt') }}
- name: Prerequisites
run: |
echo $PATH
sudo apt-get update && sudo apt-get upgrade -y
sudo apt update --fix-missing
sudo apt -y install bash \
bison \
coreutils \
docutils-common \
flex \
genisoimage \
gettext \
git \
gnutls-bin \
grep \
jq \
libaio-dev \
libbluetooth-dev \
libbrlapi-dev \
libbz2-dev \
libcacard-dev \
libcap-ng-dev \
libcapstone-dev \
libcurl4-gnutls-dev \
libfdt-dev \
libglib2.0-dev \
libglib2.0-dev \
libglib2.0-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-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libseccomp-dev \
libslirp-dev \
libslirp0 \
libsnappy-dev \
libspice-protocol-dev \
libspice-protocol-dev \
libspice-server-dev \
libssh-dev \
libusb* \
libvde-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvirglrenderer1 \
libvte-2.91-dev \
libxen-dev \
libxkbcommon-dev \
libxkbcommon-dev \
libxml2-dev \
libxml2-utils \
libyajl-dev \
libyajl2 \
libzstd-dev \
libzstd1 \
lsb-base \
ninja-build \
ovmf \
pip \
pkg-config \
procps \
python3-venv \
sed \
slirp* \
spice-client-gtk \
tss2 \
unzip \
usbutils \
valgrind \
virgl-server \
wget \
xdg-user-dirs \
xfslibs-dev \
xsltproc \
zlib1g-dev \
zsync
- name: linuxdeploy & appimagetool
run: |
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
- name: meson
run: |
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
- name: quickemu
run: |
sudo add-apt-repository -y ppa:flexiondotorg/quickemu
sudo apt-get update && sudo apt-get -y install quickemu
- name: q
run: |
wget -q https://raw.githubusercontent.com/oSoWoSo/DistroHopper/all/q ; chmod a+x q
- name: gum
run: |
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --batch --yes --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt-get update && sudo apt-get -y install gum
# needed directories
mkdir -p lucas/usr/lib/
mkdir -p lucas/usr/share/
cp -r /usr/share/mime/ lucas/usr/share/
- name: qemu
run: |
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure \
--disable-docs \
--enable-alsa \
--enable-brlapi \
--enable-gio \
--enable-gnutls \
--enable-gtk \
--enable-gtk-clipboard \
--enable-guest-agent \
--enable-kvm \
--enable-libssh \
--enable-libudev \
--enable-libusb \
--enable-modules \
--enable-netmap \
--enable-nettle \
--enable-opengl \
--enable-pa \
--enable-pixman \
--enable-sdl \
--enable-slirp \
--enable-slirp-smbd \
--enable-smartcard \
--enable-spice \
--enable-spice-protocol \
--enable-system \
--enable-tpm \
--enable-usb-redir \
--enable-user \
--enable-vde \
--enable-vdi \
--enable-vduse-blk-export \
--enable-vhdx \
--enable-vhost-crypto \
--enable-vhost-kernel \
--enable-vhost-net \
--enable-vhost-user \
--enable-vhost-user-blk-server \
--enable-vhost-vdpa \
--enable-virglrenderer \
--enable-vmdk \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-sasl \
--enable-vpc \
--enable-vte \
--enable-vvfat \
--enable-xen \
--enable-xen-pci-passthrough \
--enable-zstd \
--target-list=x86_64-linux-user --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 'q.desktop' | xargs -i -t -exec cp {} /home/runner/work/Qemu_Appimage/Qemu_Appimage/lucas/
find -iname 'q_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@latest"
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 }}"