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
sources:
- https://github.com/thestr4ng3r/chiaki.git
- https://github.com/thestr4ng3r/chiaki
artifacts:
- 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/
.gdb_history
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.
[![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
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).
in
## 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.
@ -83,10 +83,10 @@ There are official groups for Chiaki on Telegram and IRC. They are bridged so yo
## Acknowledgements
This project has only been made possible because of the following Open Source projects:
[radare2](https://github.com/radare/radare2),
[Cutter](https://cutter.re/),
[Frida](https://www.frida.re/) and
[x64dbg](https://x64dbg.com/).
[Rizin](https://rizin.re),
[Cutter](https://cutter.re),
[Frida](https://www.frida.re) and
[x64dbg](https://x64dbg.com).
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,

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
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 \
libssl-dev protobuf-compiler python3 python3-protobuf \
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"
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
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
cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
shift
ROOT="`pwd`"
TAG=n4.2

View file

@ -1,6 +1,9 @@
#!/bin/bash
set -xe
cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
ROOT="`pwd`"
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
if [ ! -d "$DIR" ]; then
wget "$URL" || exit 1
tar -xf "$FILE" || exit 1
curl -L "$URL" -O
tar -xf "$FILE"
fi
cd "$DIR" || exit 1
@ -33,9 +36,9 @@ cmake \
-DSDL_THREADS=ON \
-DSDL_TIMERS=OFF \
-DSDL_VIDEO=OFF \
.. || exit 1
..
# SDL_THREADS is not needed, but it doesn't compile without
make -j4 || exit 1
make install || exit 1
make -j4
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
set -xe
cd $(dirname "${BASH_SOURCE[0]}")/..
cd "./$1"
ROOT="`pwd`"
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
unzip protoc.zip -d protoc || exit 1
curl -L "$URL" -o protoc.zip
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