-
Notifications
You must be signed in to change notification settings - Fork 150
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Cédrik Fuoco <[email protected]>
- Loading branch information
1 parent
39eace1
commit 89dba58
Showing
1 changed file
with
288 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,288 @@ | ||
name: OpenRV | ||
|
||
# TODO: Pin workflow extension to specific commits for security | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'feature/**' | ||
paths: | ||
- .github/workflows/ci.yml | ||
|
||
pull_request: | ||
branches: | ||
- 'feature/**' | ||
paths: | ||
- .github/workflows/ci.yml | ||
|
||
jobs: | ||
macos-13: | ||
runs-on: macos-13 | ||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
|
||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
|
||
- name: Display Python installation location | ||
run: | | ||
python -c "import sys; print(sys.executable)" | ||
- name: Prepare Qt folder | ||
run: | | ||
mkdir -p "${{ github.workspace }}/deps" | ||
- name: Install Qt | ||
uses: jurplel/install-qt-action@v4 | ||
with: | ||
version: '5.15.2' | ||
host: 'mac' | ||
target: 'desktop' | ||
arch: 'clang_64' | ||
dir: "${{ github.workspace }}/deps" | ||
install-deps: 'false' | ||
modules: 'debug_info qtcharts qtdatavis3d qtlottie qtnetworkauth qtquick3d qtquicktimeline qtscript qtwebengine qtwebglplugin' | ||
archives: 'd3dcompiler_47 opengl32sw qt3d qtactiveqt qtbase qtconnectivity qtdeclarative qtgraphicaleffects qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtremoteobjects qtscxml qtsensors qtsvg qttools qttranslations qtwebchannel qtwebsockets qtwebview qtwinextras qtxmlpatterns' | ||
cache: true | ||
cache-key-prefix: 'install-qt-action' | ||
setup-python: 'false' | ||
tools: 'tools_qtcreator' | ||
set-env: 'true' | ||
tools-only: 'false' | ||
aqtversion: '==3.1.*' | ||
|
||
- name: Display Qt installation | ||
run: | | ||
ls -al "${{ github.workspace }}/deps/Qt/5.15.2/clang_64" | ||
- name: Install pip | ||
run: | | ||
python3 -m pip install --user --upgrade -r requirements.txt | ||
- name: Restore Homebrew cache | ||
uses: actions/cache@v3 | ||
id: brew-cache-restore | ||
with: | ||
path: ~/Library/Caches/Homebrew | ||
key: ${{ runner.os }}-brew | ||
|
||
- name: Install Homebrew | ||
run: | | ||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||
- name: Install dependencies | ||
run: | | ||
brew install cmake ninja readline sqlite3 xz zlib tcl-tk autoconf automake libtool python yasm clang-format black meson nasm pkg-config glew | ||
- name: Configure | ||
run: | | ||
export QT_HOME=${{ github.workspace }}/deps/Qt/5.15.2/clang_64 | ||
cmake -B _build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=$QT_HOME -DRV_VFX_PLATFORM=CY2023 | ||
- name: Build dependencies | ||
run: | | ||
cmake --build _build --target dependencies --parallel=1 -v | ||
- name: Build main executable | ||
run: | | ||
cmake --build _build --target main_executable --parallel -v | ||
- name: Tests | ||
run: | | ||
ctest --test-dir _build --extra-verbose | ||
macos-14-arm64: | ||
runs-on: macos-latest | ||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
|
||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
|
||
- name: Display Python installation location | ||
run: | | ||
python -c "import sys; print(sys.executable)" | ||
- name: Prepare Qt folder | ||
run: | | ||
mkdir -p "${{ github.workspace }}/deps" | ||
- name: Install Qt | ||
uses: jurplel/install-qt-action@v4 | ||
with: | ||
version: '5.15.2' | ||
host: 'mac' | ||
target: 'desktop' | ||
arch: 'clang_64' | ||
dir: "${{ github.workspace }}/deps" | ||
install-deps: 'false' | ||
modules: 'debug_info qtcharts qtdatavis3d qtlottie qtnetworkauth qtquick3d qtquicktimeline qtscript qtwebengine qtwebglplugin' | ||
archives: 'd3dcompiler_47 opengl32sw qt3d qtactiveqt qtbase qtconnectivity qtdeclarative qtgraphicaleffects qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtremoteobjects qtscxml qtsensors qtsvg qttools qttranslations qtwebchannel qtwebsockets qtwebview qtwinextras qtxmlpatterns' | ||
cache: true | ||
cache-key-prefix: 'install-qt-action' | ||
setup-python: 'false' | ||
tools: 'tools_qtcreator' | ||
set-env: 'true' | ||
tools-only: 'false' | ||
aqtversion: '==3.1.*' | ||
|
||
- name: Install pip | ||
run: | | ||
python3 -m pip install --user --upgrade -r requirements.txt | ||
- name: Restore Homebrew cache | ||
uses: actions/cache@v3 | ||
id: brew-cache-restore | ||
with: | ||
path: ~/Library/Caches/Homebrew | ||
key: ${{ runner.os }}-brew | ||
|
||
- name: Install Homebrew | ||
run: | | ||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||
- name: Install dependencies | ||
run: | | ||
brew install cmake ninja readline sqlite3 xz zlib tcl-tk autoconf automake libtool python yasm clang-format black meson nasm pkg-config glew | ||
brew install --cask xquartz | ||
- name: Configure | ||
run: | | ||
export QT_HOME=${{ github.workspace }}/deps/Qt/5.15.2/clang_64 | ||
cmake -B _build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=$QT_HOME -DRV_VFX_PLATFORM=CY2023 | ||
- name: Build dependencies | ||
run: | | ||
cmake --build _build --target dependencies --parallel=1 -v | ||
- name: Build main executable | ||
run: | | ||
cmake --build _build --target main_executable --parallel -v | ||
- name: Tests | ||
run: | | ||
ctest --test-dir _build --extra-verbose | ||
windows: | ||
runs-on: windows-latest | ||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
|
||
- name: Setup msys2 | ||
uses: msys2/setup-msys2@v2 | ||
with: | ||
msystem: MINGW64 | ||
update: true | ||
cache: true | ||
install: >- | ||
mingw-w64-x86_64-autotools | ||
mingw-w64-x86_64-cmake | ||
mingw-w64-x86_64-cmake-cmcldeps | ||
mingw-w64-x86_64-glew | ||
mingw-w64-x86_64-libarchive | ||
mingw-w64-x86_64-make | ||
mingw-w64-x86_64-meson | ||
mingw-w64-x86_64-toolchain | ||
autoconf | ||
automake | ||
bison | ||
flex | ||
git | ||
libtool | ||
nasm | ||
p7zip | ||
patch | ||
unzip | ||
zip | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
|
||
- name: Display Python installation location | ||
run: | | ||
python -c "import sys; print(sys.executable)" | ||
- run: | | ||
echo "export PATH=/c/hostedtoolcache/windows/Python/3.10.11/x64:/c/Strawberry/c/bin:/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/msys64/mingw64/bin:$PATH" >> ~/.bash_profile | ||
shell: msys2 {0} | ||
- run: | | ||
echo $PATH | ||
which python | ||
which python3 | ||
shell: msys2 {0} | ||
- name: Prepare Qt folder | ||
run: | | ||
mkdir -p /c/qt | ||
shell: msys2 {0} | ||
|
||
# - name: Cache Qt installation | ||
# uses: actions/cache@v3 | ||
# id: qt-cache | ||
# with: | ||
# path: "c:/" | ||
# key: ${{ runner.os }}-qt-${{ hashFiles('~/qt/**') }} | ||
|
||
- name: Install Qt | ||
uses: jurplel/install-qt-action@v4 | ||
with: | ||
version: '5.15.2' | ||
host: 'windows' | ||
target: 'desktop' | ||
arch: 'win64_msvc2019_64' | ||
dir: "c:/" | ||
install-deps: 'false' | ||
modules: 'debug_info qtcharts qtdatavis3d qtlottie qtnetworkauth qtquick3d qtquicktimeline qtscript qtwebengine qtwebglplugin' | ||
archives: 'd3dcompiler_47 opengl32sw qt3d qtactiveqt qtbase qtconnectivity qtdeclarative qtgraphicaleffects qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtremoteobjects qtscxml qtsensors qtsvg qttools qttranslations qtwebchannel qtwebsockets qtwebview qtwinextras qtxmlpatterns' | ||
cache: true | ||
cache-key-prefix: 'install-qt-action' | ||
setup-python: 'false' | ||
tools: 'tools_qtcreator' | ||
set-env: 'true' | ||
tools-only: 'false' | ||
aqtversion: '==3.1.*' | ||
|
||
- name: Install pip | ||
run: | | ||
SETUPTOOLS_USE_DISTUTILS=stdlib python3 -m pip install --user --upgrade -r ./requirements.txt | ||
shell: msys2 {0} | ||
|
||
- name: Configure | ||
run: | | ||
which perl | ||
export QT_HOME=c:/Qt/5.15.2/msvc2019_64 | ||
cmake -B _build -G "Visual Studio 17 2022" -A x64 -DRV_DEPS_WIN_PERL_ROOT=c:/Strawberry/perl/bin -DCMAKE_BUILD_TYPE=Release -DRV_DEPS_QT5_LOCATION=$QT_HOME -DRV_VFX_PLATFORM=CY2023 | ||
shell: msys2 {0} | ||
|
||
- name: Build deps | ||
run: | | ||
cmake --build _build --config Release --target RV_DEPS_FFMPEG --parallel=1 -v | ||
shell: msys2 {0} | ||
id: build_deps | ||
|
||
- name: Failure debugging | ||
if: always() | ||
run: | | ||
ls -al ./_build/RV_DEPS_FFMPEG/src/ffbuild | ||
ls -al ./_build/RV_DEPS_DAV1D/install/lib/pkgconfig | ||
cat ./_build/RV_DEPS_FFMPEG/src/ffbuild/config.log | ||
shell: msys2 {0} | ||
|
||
# - name: Build main | ||
# run: | | ||
# cmake --build _build --config Release --target main_executable --parallel -v | ||
# shell: msys2 {0} | ||
|