Commit 8e4e7678 authored by Jerome Wu's avatar Jerome Wu

Use matrix to split jobs

parent 164ca130
name: Build FFmpeg.wasm (Single Thread)
on:
push:
branches: [ n4.3.1-wasm ]
pull_request:
branches: [ n4.3.1-wasm ]
env:
EM_VERSION: 2.0.8
EM_CACHE_FOLDER: 'emsdk-cache'
jobs:
linux-build_with_docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Build FFMpeg
shell: bash
run: |
FFMPEG_ST=yes bash build-with-docker.sh
- uses: actions/upload-artifact@master
with:
name: ffmpeg-core
path: wasm/packages/core-st/dist
name: Build FFmpeg.wasm name: Build FFmpeg.wasm
on: on:
push: push:
branches: [ n4.3.1-wasm ] branches:
- n4.3.1-wasm
pull_request: pull_request:
branches: [ n4.3.1-wasm ] branches:
- n4.3.1-wasm
env: # env:
EM_VERSION: 2.0.8 # EM_VERSION: 2.0.8
EM_CACHE_FOLDER: 'emsdk-cache' # EM_CACHE_FOLDER: 'emsdk-cache'
jobs: jobs:
linux-build_with_docker: build-libs:
strategy:
max-parallel: 1
matrix:
script:
- build-zlib
- build-x264
- build-x265
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
...@@ -18,12 +27,12 @@ jobs: ...@@ -18,12 +27,12 @@ jobs:
submodules: recursive submodules: recursive
- name: Build FFMpeg - name: Build FFMpeg
shell: bash shell: bash
run: | run: bash build-with-docker.sh install-deps ${{ matrix.script }}
bash build-with-docker.sh # - uses: actions/upload-artifact@master
- uses: actions/upload-artifact@master # with:
with: # name: ffmpeg-core
name: ffmpeg-core # path: wasm/packages/core/dist
path: wasm/packages/core/dist
# Disable macos build due to there is no ldconfig command # Disable macos build due to there is no ldconfig command
# during freetype2 build. # during freetype2 build.
# macos-build: # macos-build:
......
...@@ -11,4 +11,4 @@ docker run \ ...@@ -11,4 +11,4 @@ docker run \
-v $PWD/wasm/cache:/emsdk_portable/.data/cache/wasm \ -v $PWD/wasm/cache:/emsdk_portable/.data/cache/wasm \
-e FFMPEG_ST=${FFMPEG_ST:-no} \ -e FFMPEG_ST=${FFMPEG_ST:-no} \
emscripten/emsdk:$EM_VERSION \ emscripten/emsdk:$EM_VERSION \
sh -c 'bash ./build.sh' bash ./build.sh "$@"
...@@ -4,45 +4,47 @@ set -eo pipefail ...@@ -4,45 +4,47 @@ set -eo pipefail
SCRIPT_ROOT=$(dirname $0)/wasm/build-scripts SCRIPT_ROOT=$(dirname $0)/wasm/build-scripts
# verify Emscripten version run() {
emcc -v for name in $@; do
# install dependencies $SCRIPT_ROOT/$name.sh
$SCRIPT_ROOT/install-deps.sh done
# build zlib }
$SCRIPT_ROOT/build-zlib.sh
# build x264 run-all() {
$SCRIPT_ROOT/build-x264.sh SCRIPTS=(
# build x265 # install dependencies
$SCRIPT_ROOT/build-x265.sh install-deps
# build libvpx build-zlib
$SCRIPT_ROOT/build-libvpx.sh build-x264
# build WavPack build-x265
$SCRIPT_ROOT/build-wavpack.sh build-libvpx
# build lame build-wavpack
$SCRIPT_ROOT/build-lame.sh build-lame
# build fdk-aac build-fdk-acc
$SCRIPT_ROOT/build-fdk-aac.sh build-ogg
# build ogg build-vorbis
$SCRIPT_ROOT/build-ogg.sh build-theora
# build vorbis build-opus
$SCRIPT_ROOT/build-vorbis.sh build-libwebp
# build theora build-freetype2
$SCRIPT_ROOT/build-theora.sh build-fribidi
# build opus build-harfbuzz
$SCRIPT_ROOT/build-opus.sh build-libass
# build libwebp #build-aom # disabled as it is extremely slow
$SCRIPT_ROOT/build-libwebp.sh configure-ffmpeg
# build freetype2 build-ffmpeg
$SCRIPT_ROOT/build-freetype2.sh )
# build fribidi run ${SCRIPTS[@]}
$SCRIPT_ROOT/build-fribidi.sh }
# build harfbuzz
$SCRIPT_ROOT/build-harfbuzz.sh main() {
# build libass # verify Emscripten version
$SCRIPT_ROOT/build-libass.sh emcc -v
# build aom (disabled as it is extremely slow) if [[ "$@" == "" ]]; then
# $SCRIPT_ROOT/build-aom.sh run-all
# configure FFmpeg with Emscripten else
$SCRIPT_ROOT/configure-ffmpeg.sh run "$@"
# build ffmpeg.wasm core fi
$SCRIPT_ROOT/build-ffmpeg.sh }
main "$@"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment