.github/workflows/appimage.yml #239
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: RetroArch AppImage Nightly Build | |
on: | |
schedule: | |
- cron: "0 5 * * *" # build every night at midnight Eastern | |
watch: # this is a hack that lets repo owners trigger a build by starring | |
types: [started] | |
if: github.actor == github.event.repository.owner.login | |
jobs: | |
Assets: | |
name: Collect and bundle assets | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- run: | | |
git clone https://github.com/libretro/retroarch-assets.git && mv retroarch-assets assets && rm -rf assets/branding assets/wallpaper/* assets/src assets/.git | |
git clone https://github.com/libretro/common-overlays.git && mv common-overlays overlays && rm -rf overlays/.git | |
git clone https://github.com/libretro/retroarch-joypad-autoconfig.git && mv retroarch-joypad-autoconfig autoconfig && rm -rf autoconfig/.git | |
git clone https://github.com/libretro/libretro-super.git && mv libretro-super/dist/info ./ && rm -rf libretro-super | |
mkdir shaders | |
- name: fetch shaders | |
working-directory: shaders | |
run: | | |
git clone https://github.com/libretro/glsl-shaders.git && mv glsl-shaders shaders_glsl && rm -rf shaders_glsl/.git | |
git clone https://github.com/libretro/slang-shaders.git && mv slang-shaders shaders_slang && rm -rf shaders_slang/.git | |
- run: | | |
git clone https://github.com/libretro/libretro-database.git && mv libretro-database/rdb ./database && mv libretro-database/cht ./cheats && rm -rf libretro-database | |
git clone https://github.com/libretro/RetroArch.git | |
mkdir -p filters/audio && mkdir -p filters/video | |
- name: Build audio filters | |
working-directory: RetroArch/libretro-common/audio/dsp_filters | |
run: make && mv *so ../../../../filters/audio && mv *dsp ../../../../filters/audio | |
- name: Build video filters | |
working-directory: RetroArch/gfx/video_filters | |
run: make && mv *so ../../../filters/video && mv *filt ../../../filters/video | |
- run: rm -rf RetroArch | |
- name: Zip it up! | |
run: 7z a -mx=9 -x'!README.md' -x'!LICENSE' assets.7z * | |
- name: Upload Windows assets bundle | |
uses: actions/upload-artifact@v2 | |
with: | |
name: assets.7z | |
path: assets.7z | |
- run: | | |
mkdir retroarch | |
mv assets retroarch/ | |
mv overlays retroarch/overlay | |
mv autoconfig retroarch/ | |
mv info retroarch/cores | |
mv shaders retroarch/ | |
mv filters retroarch/ | |
mkdir retroarch/database && mv database retroarch/database/rdb | |
mv cheats retroarch/ | |
mkdir RetroArch-Linux-x86_64-Nightly.AppImage.home | |
mv retroarch/ RetroArch-Linux-x86_64-Nightly.AppImage.home | |
7z a -mx=9 RetroArch-Linux-x86_64-Nightly.AppImage.home.7z RetroArch-Linux-x86_64-Nightly.AppImage.home | |
- name: Upload Linux AppImage assets bundle | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: RetroArch-Linux-x86_64-Nightly.AppImage.home.7z | |
tag: Nightlies | |
asset_name: RetroArch-Linux-x86_64-Nightly.AppImage.home.7z | |
overwrite: true | |
Linux: | |
name: Build RetroArch Linux AppImage Nightly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch dependencies | |
run: sudo apt-get update ; sudo apt-get install libfuse2 python3-all-dev alsa-utils chrpath lsb-release yasm libass-dev libavdevice-dev libcaca-dev libdrm-dev libflac-dev libfreetype6-dev libfribidi-dev libgbm-dev libglm-dev libglvnd-dev libjack-dev liblua5.3-dev libminiupnpc-dev libmpv-dev libopenal-dev libosmesa6-dev libsdl2-dev libsixel-dev libslang2-dev libssl-dev libsystemd-dev libusb-1.0-0-dev libv4l-dev libvulkan-dev libwayland-dev libwayland-egl-backend-dev libx11-xcb-dev libxcb-shm0-dev libxkbcommon-dev libxml2-dev qtbase5-dev wayland-protocols x11proto-xext-dev zlib1g-dev | |
- name: Fetch linuxdeploy | |
run: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage | |
- name: Fetch RetroArch source tree | |
run: git clone https://github.com/libretro/RetroArch.git | |
- name: Build RetroArch | |
run: cd RetroArch && mkdir AppDir && ./configure --disable-qt --prefix=/usr && make -j8 && make install DESTDIR=AppDir prefix=/usr && ../linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage && mv RetroArch*.AppImage ../RetroArch-Linux-x86_64-Nightly.AppImage | |
- name: Check AppImage for common issues | |
run: wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage && chmod +x appimagelint-x86_64.AppImage && ./appimagelint-x86_64.AppImage RetroArch-Linux-x86_64-Nightly.AppImage | |
- name: Upload RetroArch AppImage | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: RetroArch-Linux-x86_64-Nightly.AppImage | |
tag: Nightlies | |
asset_name: RetroArch-Linux-x86_64-Nightly.AppImage | |
overwrite: true | |
Linux_LTS: | |
name: Build RetroArch LTS Linux AppImage Nightly | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch dependencies | |
run: sudo apt-get update ; sudo apt-get install python3-all-dev alsa-utils chrpath lsb-release yasm libass-dev libavdevice-dev libcaca-dev libdrm-dev libflac-dev libfreetype6-dev libfribidi-dev libgbm-dev libglm-dev libglvnd-dev libjack-dev liblua5.3-dev libminiupnpc-dev libmpv-dev libopenal-dev libosmesa6-dev libsdl2-dev libsixel-dev libslang2-dev libssl-dev libsystemd-dev libusb-1.0-0-dev libv4l-dev libvulkan-dev libwayland-dev libwayland-egl-backend-dev libx11-xcb-dev libxcb-shm0-dev libxkbcommon-dev libxml2-dev qtbase5-dev wayland-protocols x11proto-xext-dev zlib1g-dev | |
- name: Fetch linuxdeploy | |
run: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage | |
- name: Fetch RetroArch source tree | |
run: git clone https://github.com/libretro/RetroArch.git | |
- name: Build RetroArch | |
run: cd RetroArch && mkdir AppDir && ./configure --disable-qt --prefix=/usr && make -j8 && make install DESTDIR=AppDir prefix=/usr && ../linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage && mv RetroArch*.AppImage ../RetroArch-Linux-x86_64-Nightly.AppImage | |
- name: Check AppImage for common issues | |
run: wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage && chmod +x appimagelint-x86_64.AppImage && ./appimagelint-x86_64.AppImage RetroArch-Linux-x86_64-Nightly.AppImage | |
- name: Upload RetroArch AppImage | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: RetroArch-Linux-x86_64-Nightly.AppImage | |
tag: Linux_LTS_Nightlies | |
asset_name: RetroArch-Linux-x86_64-Nightly.AppImage | |
overwrite: true |