forked from Mirrors/psxavenc
Add GitHub Actions CI script
This commit is contained in:
parent
67746af7b4
commit
21aed2cd6b
|
@ -0,0 +1,92 @@
|
|||
#!/bin/bash
|
||||
|
||||
ROOT_DIR="$(pwd)"
|
||||
FFMPEG_VERSION="6.0"
|
||||
NUM_JOBS="4"
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
PACKAGE_NAME="$1"
|
||||
FFMPEG_OPTIONS=""
|
||||
PSXAVENC_OPTIONS=""
|
||||
elif [ $# -eq 3 ]; then
|
||||
PACKAGE_NAME="$1"
|
||||
FFMPEG_OPTIONS="--arch=x86 --target-os=mingw32 --cross-prefix=$2-"
|
||||
PSXAVENC_OPTIONS="--cross-file $3"
|
||||
else
|
||||
echo "Usage: $0 <package name> [cross prefix] [cross file]"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
## Download FFmpeg
|
||||
|
||||
if [ ! -d ffmpeg-$FFMPEG_VERSION ]; then
|
||||
wget "https://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.xz" \
|
||||
|| exit 1
|
||||
tar Jxf ffmpeg-$FFMPEG_VERSION.tar.xz \
|
||||
|| exit 1
|
||||
|
||||
rm -f ffmpeg-$FFMPEG_VERSION.tar.xz
|
||||
fi
|
||||
|
||||
## Build FFmpeg
|
||||
|
||||
mkdir -p ffmpeg-build
|
||||
cd ffmpeg-build
|
||||
|
||||
../ffmpeg-$FFMPEG_VERSION/configure \
|
||||
--prefix="$ROOT_DIR/ffmpeg-dist" \
|
||||
$FFMPEG_OPTIONS \
|
||||
--enable-gpl \
|
||||
--enable-version3 \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
--enable-small \
|
||||
--disable-programs \
|
||||
--disable-doc \
|
||||
--disable-avdevice \
|
||||
--disable-postproc \
|
||||
--disable-avfilter \
|
||||
--disable-network \
|
||||
--disable-encoders \
|
||||
--disable-hwaccels \
|
||||
--disable-muxers \
|
||||
--disable-bsfs \
|
||||
--disable-devices \
|
||||
--disable-filters \
|
||||
--disable-mmx \
|
||||
|| exit 2
|
||||
make -j $NUM_JOBS \
|
||||
|| exit 2
|
||||
make install \
|
||||
|| exit 2
|
||||
|
||||
cd ..
|
||||
rm -rf ffmpeg-build
|
||||
|
||||
## Build psxavenc
|
||||
|
||||
meson setup \
|
||||
--buildtype release \
|
||||
--strip \
|
||||
--prefix $ROOT_DIR/psxavenc-dist \
|
||||
--pkg-config-path $ROOT_DIR/ffmpeg-dist/lib/pkgconfig \
|
||||
$PSXAVENC_OPTIONS \
|
||||
psxavenc-build \
|
||||
psxavenc \
|
||||
|| exit 3
|
||||
meson compile -C psxavenc-build \
|
||||
|| exit 3
|
||||
meson install -C psxavenc-build \
|
||||
|| exit 3
|
||||
|
||||
rm -rf ffmpeg-dist psxavenc-build
|
||||
|
||||
## Package psxavenc
|
||||
|
||||
cd psxavenc-dist
|
||||
|
||||
zip -9 -r ../$PACKAGE_NAME.zip . \
|
||||
|| exit 4
|
||||
|
||||
cd ..
|
||||
rm -rf psxavenc-dist
|
|
@ -0,0 +1,12 @@
|
|||
[binaries]
|
||||
c = 'x86_64-w64-mingw32-gcc'
|
||||
cpp = 'x86_64-w64-mingw32-g++'
|
||||
ar = 'x86_64-w64-mingw32-ar'
|
||||
strip = 'x86_64-w64-mingw32-strip'
|
||||
pkgconfig = 'pkg-config'
|
||||
|
||||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
endian = 'little'
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
name: Build psxavenc
|
||||
on: [ push, pull_request ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build and create release
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-recommends meson ninja-build gcc-mingw-w64-x86-64
|
||||
|
||||
- name: Fetch repo contents
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: psxavenc
|
||||
|
||||
- name: Build psxavenc for Windows
|
||||
run: |
|
||||
psxavenc/.github/scripts/build.sh psxavenc-windows x86_64-w64-mingw32 psxavenc/.github/scripts/mingw-cross.txt
|
||||
|
||||
- name: Build psxavenc for Linux
|
||||
run: |
|
||||
psxavenc/.github/scripts/build.sh psxavenc-linux
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: psxavenc-windows
|
||||
path: |
|
||||
psxavenc-windows.zip
|
||||
psxavenc-linux.zip
|
||||
|
||||
- name: Publish release
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
#fail_on_unmatched_files: true
|
||||
files: |
|
||||
psxavenc-windows.zip
|
||||
psxavenc-linux.zip
|
Loading…
Reference in New Issue