Move Rest of CI to Sourcehut

This commit is contained in:
Florian Märkl 2020-12-27 19:21:09 +01:00
parent db5b3a1499
commit dfc0f32ac2
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
20 changed files with 165 additions and 278 deletions

View file

@ -1,26 +0,0 @@
image: alpine/latest
sources:
- https://github.com/thestr4ng3r/chiaki.git
packages:
- cmake
- protoc
- py3-protobuf
- opus-dev
- qt5-qtbase-dev
- qt5-qtsvg-dev
- qt5-qtmultimedia-dev
- ffmpeg-dev
- sdl2-dev
- sdl2-static # this is gone on alpine edge so might be necessary to remove later
tasks:
- build: |
cd chiaki
mkdir build && cd build
cmake ..
make -j4
test/chiaki-unit

View file

@ -4,7 +4,7 @@ packages:
- docker - docker
sources: sources:
- https://github.com/thestr4ng3r/chiaki.git - https://github.com/thestr4ng3r/chiaki
artifacts: artifacts:
- Chiaki.apk - Chiaki.apk

46
.builds/common.yml Normal file
View file

@ -0,0 +1,46 @@
image: alpine/latest
sources:
- https://github.com/thestr4ng3r/chiaki
packages:
- cmake
- ninja
- protoc
- py3-protobuf
- opus-dev
- qt5-qtbase-dev
- qt5-qtsvg-dev
- qt5-qtmultimedia-dev
- ffmpeg-dev
- sdl2-dev
- sdl2-static # this is gone on alpine edge so might be necessary to remove later
- docker
- fuse
artifacts:
- chiaki.nro
- Chiaki.AppImage
tasks:
- start_docker: |
sudo service docker start
sudo chmod +s /usr/bin/docker # Yes, I know what I am doing
sudo service fuse start # Fuse for AppImages
- local_build_and_test: |
cd chiaki
cmake -Bbuild -GNinja
ninja -C build
build/test/chiaki-unit
- appimage: |
cd chiaki
scripts/run-docker-build-appimage.sh
cp appimage/Chiaki.AppImage ../Chiaki.AppImage
- switch: |
cd chiaki
scripts/switch/run-docker-build-chiaki.sh
cp build_switch/switch/chiaki.nro ../chiaki.nro
- bullseye: |
cd chiaki
scripts/run-docker-build-bullseye.sh

View file

@ -1,22 +0,0 @@
name: Debian Bullseye
on:
push:
branches:
- master
pull_request:
jobs:
build:
name: Debian Bullseye
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
run: |
git submodule init
git submodule update
- name: Docker Build
run: cd scripts && docker build -t chiaki-bullseye . -f Dockerfile.bullseye && cd ..
- name: Build and Test
run: docker run --rm -v "`pwd`:/build" -t chiaki-bullseye /bin/bash -c "cd /build && scripts/ci-script -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON"

View file

@ -1,24 +0,0 @@
name: Switch
on:
push:
branches:
- master
pull_request:
jobs:
build:
name: Switch
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
run: |
git submodule init
git submodule update
- name: Build Chiaki
run: scripts/switch/run-docker-build-chiaki.sh
- name: Upload chiaki.nro
uses: actions/upload-artifact@v1
with:
name: chiaki.nro
path: ./build_switch/switch/chiaki.nro

1
.gitignore vendored
View file

@ -27,3 +27,4 @@ compile_commands.json
.cache/ .cache/
.gdb_history .gdb_history
chiaki.conf chiaki.conf
/appimage

View file

@ -1,165 +0,0 @@
language: cpp
branches:
only:
- master
- /^v\d.*$/
- /^deploy-test(-.*)?$/
before_script:
- export CHIAKI_VERSION="$TRAVIS_TAG"
- if [ -z "$CHIAKI_VERSION" ]; then export CHIAKI_VERSION="$TRAVIS_COMMIT"; fi
matrix:
include:
- name: Linux (Bionic)
os: linux
dist: bionic
addons:
apt:
sources:
- sourceline: "ppa:beineri/opt-qt-5.12.0-bionic"
packages:
- protobuf-compiler
- python3-protobuf
- libopus-dev
- qt512base
- qt512multimedia
- qt512gamepad
- qt512svg
- libgl1-mesa-dev
- nasm
- libsdl2-dev
- libva-dev
env:
- CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;/opt/qt512"
- CMAKE_EXTRA_ARGS="-DCMAKE_INSTALL_PREFIX=/usr"
- DEPLOY=0
install:
- scripts/build-ffmpeg.sh
script:
- scripts/travis-build.sh || exit 1
- source scripts/travis-appimage.sh
- name: Linux (Xenial, Deploy)
os: linux
dist: xenial
addons:
apt:
sources:
- sourceline: "ppa:beineri/opt-qt-5.12.3-xenial"
packages:
- python3-pip
- libopus-dev
- qt512base
- qt512multimedia
- qt512svg
- libgl1-mesa-dev
- nasm
- libudev-dev
- libva-dev
env:
- CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;$TRAVIS_BUILD_DIR/sdl2-prefix;/opt/qt512"
- CMAKE_EXTRA_ARGS="-DCMAKE_INSTALL_PREFIX=/usr"
- SDL2_FROM_SRC=1
- DEPLOY=1
install:
- sudo pip3 install protobuf
- scripts/fetch-protoc.sh
- export PATH="$TRAVIS_BUILD_DIR/protoc/bin:$PATH"
- scripts/build-ffmpeg.sh
- scripts/build-sdl2.sh
script:
- scripts/travis-build.sh || exit 1
- source scripts/travis-appimage.sh
- name: macOS
os: osx
osx_image: xcode11
addons:
homebrew:
packages:
- qt
- opus
- openssl@1.1
- nasm
- sdl2
env:
- CMAKE_PREFIX_PATH="$TRAVIS_BUILD_DIR/ffmpeg-prefix;/usr/local/opt/openssl@1.1;/usr/local/opt/qt"
- CMAKE_EXTRA_ARGS=""
- DEPLOY=1
install:
- pip3 install protobuf
- scripts/build-ffmpeg.sh
script:
- scripts/travis-build.sh
- cp -a build/gui/chiaki.app Chiaki.app
- /usr/local/opt/qt/bin/macdeployqt Chiaki.app -dmg
- export DEPLOY_FILE="Chiaki-${CHIAKI_VERSION}-macOS-x86_64.dmg"
- mv Chiaki.dmg "$DEPLOY_FILE"
- cmake -DCHIAKI_VERSION="${CHIAKI_VERSION}" -DCHIAKI_DMG="${DEPLOY_FILE}" -DCHIAKI_CASK_OUT=chiaki.rb -P scripts/configure-cask.cmake
- echo "------------------- chiaki.rb cask -------------------"
- cat chiaki.rb
- echo "------------------------------------------------------"
- name: Android
language: android
os: linux
dist: trusty
env:
- DEPLOY=1
android:
components:
- build-tools-29.0.2
- android-29
addons:
apt:
packages:
- python3-pip
install:
- echo y | sdkmanager "ndk-bundle"
- echo y | sdkmanager "cmake;3.10.2.4988404"
- sudo pip3 install protobuf
- scripts/fetch-protoc.sh
- export PATH="$TRAVIS_BUILD_DIR/protoc/bin:$PATH"
script:
- cd android
- ./gradlew assembleRelease bundleRelease
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then export DEPLOY_FILE_BASE="Chiaki-$CHIAKI_VERSION-Android"; fi
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then export DEPLOY_FILE="$DEPLOY_FILE_BASE.a[pa][kb]"; fi
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cp app/build/outputs/apk/release/app-release.apk "../$DEPLOY_FILE_BASE.apk"; fi
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cp app/build/outputs/bundle/release/app-release.aab "../$DEPLOY_FILE_BASE.aab"; fi
- cd ..
- name: "Source Package"
os: linux
dist: bionic
env:
- DEPLOY=1
install: ~
script:
- find . -name ".git*" | xargs rm -rfv
- mkdir chiaki && shopt -s extglob && mv !(chiaki) chiaki
- export DEPLOY_FILE="chiaki-$CHIAKI_VERSION-src.tar.gz"
- tar -czvf "$DEPLOY_FILE" chiaki
before_install:
- if [ ! -z "$encrypted_31d5e6477a29_iv" ]; then openssl aes-256-cbc -K $encrypted_31d5e6477a29_key -iv $encrypted_31d5e6477a29_iv -in secret.tar.enc -out secret.tar -d && tar -xf secret.tar; fi
after_success:
- if [ ! -z "$DEPLOY_FILE" ]; then echo "--- SHA256 for $DEPLOY_FILE"; openssl dgst -sha256 "$DEPLOY_FILE"; echo; fi
- if [ ! -z "$DEPLOY_FILE" ]; then echo "--- transfer.sh"; curl -m 30 --upload-file "$DEPLOY_FILE" "https://transfer.sh/$DEPLOY_FILE"; echo; fi
- if [ ! -z "$DEPLOY_FILE" ]; then echo "--- oshi.at"; curl -m 30 --upload-file "$DEPLOY_FILE" "https://oshi.at/$DEPLOY_FILE/129600"; echo; fi
deploy:
skip_cleanup: true
provider: releases
draft: true
api_key:
secure: R7RjLOuGFda05EJeNX2lNG135xKU2w9IQn7p1H1P2zw4zlQMgSBpNRaW8hE408x5KJUjptJTF6QaYYmPWbHlf9VEPFVIcVzSp8YSd2Cdr+GKhmFgWF+fJPBj5y9NNqohwxvK3Nrugh0v6yVQiEYEGF7WArU6dvymSNNTw/EqXtfrOvwUgSf1bDAzQAsXn3E6Ptzf9DrQU8+mOgMSqT/3Wy5207KLmWTtwBWDgkskKwS9OEXk3tDd6U4uT7NFHHmcw+ZjQXRD+yHSHUWYs1oKR4IfgPFxQfEK0Txhkxdf3yj1aNweuk7GGC3cfRaarUfRQpoYqYYCxhTfGZ2b4rVgX3XpssMY7ZmSZHRi/SX08ETXF/c7PZGzr0RPFXZLgAGjgN6O2Dbb9agc3tOUGDUuqKEWX9sALm82WS0FRAFrFLENgMFsj5hu+DKIIkAU2yEsadYKjjhC+q+mTAEkxKKknvM50Xpx3tE1TlP/31Z53v4/NydHIHXPJ72V3mnuoTacwhG2SkGtjMbLCnEZDCtu9C4556oa7Z29cqafv90ZD7lTQMV+ijKvjxgOC9u1GeemmZLofRGDFyYSqKxOpYxxxXGOhs+7FMAdKP00h++MTLwRwIebKQs0fW0XiNKmwushWOUU8sXI1jxTbwe9dPQsspxHRv/mVo6l2vUcBjC19K0=
file_glob: true
file: $DEPLOY_FILE
on:
tags: true
condition: $DEPLOY = 1

View file

@ -5,7 +5,7 @@
**Disclaimer:** This project is not endorsed or certified by Sony Interactive Entertainment LLC. **Disclaimer:** This project is not endorsed or certified by Sony Interactive Entertainment LLC.
[![Travis Build Status](https://travis-ci.com/thestr4ng3r/chiaki.svg?branch=master)](https://travis-ci.com/thestr4ng3r/chiaki) [![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/dnj9cmx5mmaaawer?svg=true)](https://ci.appveyor.com/project/thestr4ng3r/chiaki) [![builds.sr.ht Status](https://builds.sr.ht/~thestr4ng3r/chiaki.svg)](https://builds.sr.ht/~thestr4ng3r/chiaki?) [![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/dnj9cmx5mmaaawer?svg=true)](https://ci.appveyor.com/project/thestr4ng3r/chiaki) [![builds.sr.ht Status](https://builds.sr.ht/~thestr4ng3r/chiaki.svg)](https://builds.sr.ht/~thestr4ng3r/chiaki?)
Chiaki is a Free and Open Source Software Client for PlayStation 4 Remote Play Chiaki is a Free and Open Source Software Client for PlayStation 4 Remote Play
for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms. for Linux, FreeBSD, OpenBSD, Android, macOS, Windows, Nintendo Switch and potentially even more platforms.
@ -50,7 +50,7 @@ make
``` ```
For more detailed platform-specific instructions, see [doc/platform-build.md](doc/platform-build.md). For more detailed platform-specific instructions, see [doc/platform-build.md](doc/platform-build.md).
in
## Usage ## Usage
If your PS4 is on your local network, is turned on or in standby mode and does not have Discovery explicitly disabled, Chiaki should find it. If your PS4 is on your local network, is turned on or in standby mode and does not have Discovery explicitly disabled, Chiaki should find it.
@ -83,10 +83,10 @@ There are official groups for Chiaki on Telegram and IRC. They are bridged so yo
## Acknowledgements ## Acknowledgements
This project has only been made possible because of the following Open Source projects: This project has only been made possible because of the following Open Source projects:
[radare2](https://github.com/radare/radare2), [Rizin](https://rizin.re),
[Cutter](https://cutter.re/), [Cutter](https://cutter.re),
[Frida](https://www.frida.re/) and [Frida](https://www.frida.re) and
[x64dbg](https://x64dbg.com/). [x64dbg](https://x64dbg.com).
Also thanks to [delroth](https://github.com/delroth) for analyzing the registration and wakeup protocol, Also thanks to [delroth](https://github.com/delroth) for analyzing the registration and wakeup protocol,
[grill2010](https://github.com/grill2010) for analyzing the PSN's OAuth Login, [grill2010](https://github.com/grill2010) for analyzing the PSN's OAuth Login,

View file

@ -0,0 +1,9 @@
// SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL
#ifndef CHIAKI_CONFIG_H
#define CHIAKI_CONFIG_H
#define CHIAKI_LIB_ENABLE_OPUS 1
#define CHIAKI_LIB_ENABLE_PI_DECODER 0
#endif // CHIAKI_CONFIG_H

View file

@ -2,7 +2,7 @@
FROM debian:bullseye FROM debian:bullseye
RUN apt-get update RUN apt-get update
RUN apt-get -y install git g++ cmake pkg-config \ RUN apt-get -y install git g++ cmake ninja-build pkg-config \
libjerasure-dev nanopb libnanopb-dev libavcodec-dev libopus-dev \ libjerasure-dev nanopb libnanopb-dev libavcodec-dev libopus-dev \
libssl-dev protobuf-compiler python3 python3-protobuf \ libssl-dev protobuf-compiler python3 python3-protobuf \
libevdev-dev libudev-dev \ libevdev-dev libudev-dev \

13
scripts/Dockerfile.xenial Normal file
View file

@ -0,0 +1,13 @@
FROM ubuntu:xenial
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:beineri/opt-qt-5.12.3-xenial
RUN apt-get update
RUN apt-get -y install git g++ cmake ninja-build curl unzip python3-pip \
libssl-dev libopus-dev qt512base qt512multimedia qt512svg \
libgl1-mesa-dev nasm libudev-dev libva-dev fuse
CMD []

View file

@ -12,7 +12,7 @@ cd .. || exit 1
export PATH="$PWD/ninja:$PWD/yasm:/c/Qt/5.12/msvc2017_64/bin:$PATH" export PATH="$PWD/ninja:$PWD/yasm:/c/Qt/5.12/msvc2017_64/bin:$PATH"
scripts/build-ffmpeg.sh --target-os=win64 --arch=x86_64 --toolchain=msvc || exit 1 scripts/build-ffmpeg.sh . --target-os=win64 --arch=x86_64 --toolchain=msvc || exit 1
git clone https://github.com/xiph/opus.git && cd opus && git checkout ad8fe90db79b7d2a135e3dfd2ed6631b0c5662ab || exit 1 git clone https://github.com/xiph/opus.git && cd opus && git checkout ad8fe90db79b7d2a135e3dfd2ed6631b0c5662ab || exit 1
mkdir build && cd build || exit 1 mkdir build && cd build || exit 1

43
scripts/build-appimage.sh Executable file
View file

@ -0,0 +1,43 @@
#!/bin/bash
set -xe
mkdir appimage
pip3 install --user protobuf
scripts/fetch-protoc.sh appimage
export PATH="`pwd`/appimage/protoc/bin:$PATH"
scripts/build-ffmpeg.sh appimage
scripts/build-sdl2.sh appimage
mkdir build_appimage
cd build_appimage
cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
"-DCMAKE_PREFIX_PATH=`pwd`/../appimage/ffmpeg-prefix;`pwd`/../appimage/sdl2-prefix;/opt/qt512" \
-DCHIAKI_ENABLE_TESTS=ON \
-DCHIAKI_ENABLE_CLI=OFF \
-DCHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
..
cd ..
ninja -C build_appimage
build_appimage/test/chiaki-unit
DESTDIR=`pwd`/appimage/appdir ninja -C build_appimage install
cd appimage
curl -L -O https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
curl -L -O https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
set +e
source /opt/qt512/bin/qt512-env.sh
set -e
export LD_LIBRARY_PATH="`pwd`/sdl2-prefix/lib:$LD_LIBRARY_PATH"
export EXTRA_QT_PLUGINS=opengl
./linuxdeploy-x86_64.AppImage --appdir=appdir -e appdir/usr/bin/chiaki -d appdir/usr/share/applications/chiaki.desktop --plugin qt --output appimage
mv Chiaki-*-x86_64.AppImage Chiaki.AppImage

View file

@ -1,6 +1,8 @@
#!/bin/bash #!/bin/bash
cd $(dirname "${BASH_SOURCE[0]}")/.. cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
shift
ROOT="`pwd`" ROOT="`pwd`"
TAG=n4.2 TAG=n4.2

View file

@ -1,6 +1,9 @@
#!/bin/bash #!/bin/bash
set -xe
cd $(dirname "${BASH_SOURCE[0]}")/.. cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
ROOT="`pwd`" ROOT="`pwd`"
URL=https://www.libsdl.org/release/SDL2-2.0.10.tar.gz URL=https://www.libsdl.org/release/SDL2-2.0.10.tar.gz
@ -8,8 +11,8 @@ FILE=SDL2-2.0.10.tar.gz
DIR=SDL2-2.0.10 DIR=SDL2-2.0.10
if [ ! -d "$DIR" ]; then if [ ! -d "$DIR" ]; then
wget "$URL" || exit 1 curl -L "$URL" -O
tar -xf "$FILE" || exit 1 tar -xf "$FILE"
fi fi
cd "$DIR" || exit 1 cd "$DIR" || exit 1
@ -33,9 +36,9 @@ cmake \
-DSDL_THREADS=ON \ -DSDL_THREADS=ON \
-DSDL_TIMERS=OFF \ -DSDL_TIMERS=OFF \
-DSDL_VIDEO=OFF \ -DSDL_VIDEO=OFF \
.. || exit 1 ..
# SDL_THREADS is not needed, but it doesn't compile without # SDL_THREADS is not needed, but it doesn't compile without
make -j4 || exit 1 make -j4
make install || exit 1 make install

View file

@ -1,9 +0,0 @@
#!/bin/bash
set -e
set -x
mkdir build && cd build
cmake .. -DCHIAKI_ENABLE_SETSU=ON "$@"
make -j8
make test

View file

@ -1,10 +1,13 @@
#!/bin/bash #!/bin/bash
set -xe
cd $(dirname "${BASH_SOURCE[0]}")/.. cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
ROOT="`pwd`" ROOT="`pwd`"
URL=https://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-linux-x86_64.zip URL=https://github.com/protocolbuffers/protobuf/releases/download/v3.9.1/protoc-3.9.1-linux-x86_64.zip
wget "$URL" -O protoc.zip || exit 1 curl -L "$URL" -o protoc.zip
unzip protoc.zip -d protoc || exit 1 unzip protoc.zip -d protoc

View file

@ -0,0 +1,15 @@
#!/bin/bash
set -xe
cd "`dirname $(readlink -f ${0})`"
docker build -t chiaki-xenial . -f Dockerfile.xenial
cd ..
docker run --rm \
-v "`pwd`:/build/chiaki" \
-w "/build/chiaki" \
--device /dev/fuse \
--cap-add SYS_ADMIN \
-t chiaki-xenial \
/bin/bash -c "scripts/build-appimage.sh"

View file

@ -0,0 +1,14 @@
#!/bin/bash
set -xe
cd "`dirname $(readlink -f ${0})`"
docker build -t chiaki-bullseye . -f Dockerfile.bullseye
cd ..
docker run --rm -v "`pwd`:/build" chiaki-bullseye /bin/bash -c "
cd /build &&
mkdir build_bullseye &&
cmake -Bbuild_bullseye -GNinja -DCHIAKI_ENABLE_SETSU=ON -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON &&
ninja -C build_bullseye &&
ninja -C build_bullseye test"

View file

@ -1,16 +0,0 @@
#!/bin/bash
cd build && make install DESTDIR=../appdir && cd .. || exit 1
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage || exit 1
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage && chmod +x linuxdeploy-plugin-qt-x86_64.AppImage || exit 1
source /opt/qt512/bin/qt512-env.sh || exit 1
if [ -n "$SDL2_FROM_SRC" ]; then
export LD_LIBRARY_PATH="$TRAVIS_BUILD_DIR/sdl2-prefix/lib:$LD_LIBRARY_PATH" || exit 1
fi
export EXTRA_QT_PLUGINS=opengl
./linuxdeploy-x86_64.AppImage --appdir=appdir -e appdir/usr/bin/chiaki -d appdir/usr/share/applications/chiaki.desktop --plugin qt --output appimage || exit 1
export DEPLOY_FILE="Chiaki-${CHIAKI_VERSION}-Linux-x86_64.AppImage" || exit 1
mv Chiaki-*-x86_64.AppImage "$DEPLOY_FILE" || exit 1