From b1b5e5cd7e1a7c38ad9771fc41de5a288233b490 Mon Sep 17 00:00:00 2001 From: Christian Feldmann Date: Wed, 20 Mar 2024 11:56:25 +0100 Subject: [PATCH] Reenable all other workflows. Also update checkout version. --- .github/workflows/Build.yml | 274 ++++++++++++++++++------------------ 1 file changed, 135 insertions(+), 139 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 8b972a19f..f79227b5a 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -7,140 +7,140 @@ on: - created jobs: - # build-unix-native: - # runs-on: ${{ matrix.os }} - # strategy: - # matrix: - # include: - # - os: ubuntu-20.04 - # INSTALL_LIBS: libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 qt5-default - # QMAKE_COMMAND: qmake - # - os: ubuntu-22.04 - # INSTALL_LIBS: qt6-base-dev - # QMAKE_COMMAND: qmake6 - # steps: - # - uses: actions/checkout@v3 - # - run: git fetch --prune --unshallow - # - name: Install Linux packages - # run: | - # sudo apt-get update - # sudo apt-get install ${{matrix.INSTALL_LIBS}} - # - name: Build - # run: | - # cd $GITHUB_WORKSPACE - # mkdir build - # cd build - # ${{matrix.QMAKE_COMMAND}} CONFIG+=UNITTESTS .. - # make -j$(nproc) - # make check - # build-mac-native: - # runs-on: ${{ matrix.os }} - # strategy: - # matrix: - # include: - # - os: macos-12 - # steps: - # - uses: actions/checkout@v3 - # - run: git fetch --prune --unshallow - # - name: Install packages - # run: | - # brew install qt - # - name: Build - # run: | - # cd $GITHUB_WORKSPACE - # mkdir build - # cd build - # qmake6 CONFIG+=UNITTESTS .. - # make -j $(sysctl -n hw.logicalcpu) - # make check - # build-unix: - # runs-on: ${{ matrix.os }} - # strategy: - # matrix: - # include: - # - os: ubuntu-20.04 - # QT_FILE: qtBase_6.5.2_ubuntu20.zip - # LIBDE265_REMOTE: libde265.so - # LIBDE265_LOCAL: libde265-internals.so - # ARTIFACT_NAME: YUView.Ubuntu20.AppImage - # CPU_COUNT_COMMAND: nproc - # - os: macos-11 - # QT_FILE: qtBase_6.5.2_mac11.zip - # LIBDE265_REMOTE: libde265.dylib - # LIBDE265_LOCAL: libde265-internals.dylib - # ARTIFACT_NAME: YUView-Mac11-BigSur.zip - # CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu - # - os: macos-12 - # QT_FILE: qtBase_6.5.2_mac12.zip - # LIBDE265_REMOTE: libde265.dylib - # LIBDE265_LOCAL: libde265-internals.dylib - # ARTIFACT_NAME: YUView-Mac12-Monterey.zip - # CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu - # steps: - # - uses: actions/checkout@v3 - # - run: git fetch --prune --unshallow - # - name: Install Qt base - # run: | - # cd ../../ - # mkdir -p YUViewQt/YUViewQt - # cd YUViewQt/YUViewQt - # curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.5.2/${{matrix.QT_FILE}} -o Qt.zip - # unzip -qa Qt.zip - # echo "$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin" >> $GITHUB_PATH - # shell: bash - # - name: Install Linuxdeployqt - # run: | - # curl -L https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage -o linuxdeployqt-6-x86_64.AppImage - # chmod a+x linuxdeployqt-6-x86_64.AppImage - # if: matrix.os == 'ubuntu-20.04' - # - name: Install Linux packages - # run: | - # sudo apt-get update - # sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libfuse2 - # if: matrix.os == 'ubuntu-20.04' - # - name: Install libde265 - # run: | - # curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/${{matrix.LIBDE265_REMOTE}} -o ${{matrix.LIBDE265_LOCAL}} - # curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt - # shell: bash - # - name: Build Linux/Mac - # run: | - # cd $GITHUB_WORKSPACE - # export PATH=$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin:$PATH - # mkdir build - # cd build - # qmake CONFIG+=UNITTESTS .. - # make -j $(${{matrix.CPU_COUNT_COMMAND}}) - # make check - # - name: Build App (Mac) - # run: | - # macdeployqt build/YUViewApp/YUView.app -always-overwrite -verbose=2 - # cp ${{matrix.LIBDE265_LOCAL}} build/YUViewApp/YUView.app/Contents/MacOS/. - # cd build/YUViewApp - # # Zip - # zip -r ${{matrix.ARTIFACT_NAME}} YUView.app/ - # mkdir $GITHUB_WORKSPACE/artifacts - # cp ${{matrix.ARTIFACT_NAME}} $GITHUB_WORKSPACE/artifacts/ - # if: matrix.os == 'macos-11' || matrix.os == 'macos-12' - # - name: Build Appimage (Linux) - # run: | - # cd build - # make INSTALL_ROOT=appdir install - # $GITHUB_WORKSPACE/linuxdeployqt-6-x86_64.AppImage YUViewApp/appdir/usr/local/share/applications/de.rwth_aachen.ient.YUView.desktop -appimage -bundle-non-qt-libs -verbose=2 - # mv YUView-*.AppImage YUView.AppImage - # mkdir $GITHUB_WORKSPACE/artifacts - # cp YUView.AppImage $GITHUB_WORKSPACE/artifacts/ - # if: matrix.os == 'ubuntu-20.04' - # - name: Upload Artifact - # uses: actions/upload-artifact@v3 - # with: - # name: ${{matrix.ARTIFACT_NAME}} - # path: artifacts - # - name: Release - # uses: softprops/action-gh-release@v1 - # if: startsWith(github.ref, 'refs/tags/') - # with: - # files: artifacts/${{matrix.ARTIFACT_NAME}} + build-unix-native: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-20.04 + INSTALL_LIBS: libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 qt5-default + QMAKE_COMMAND: qmake + - os: ubuntu-22.04 + INSTALL_LIBS: qt6-base-dev + QMAKE_COMMAND: qmake6 + steps: + - uses: actions/checkout@v4 + - run: git fetch --prune --unshallow + - name: Install Linux packages + run: | + sudo apt-get update + sudo apt-get install ${{matrix.INSTALL_LIBS}} + - name: Build + run: | + cd $GITHUB_WORKSPACE + mkdir build + cd build + ${{matrix.QMAKE_COMMAND}} CONFIG+=UNITTESTS .. + make -j$(nproc) + make check + build-mac-native: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: macos-12 + steps: + - uses: actions/checkout@v4 + - run: git fetch --prune --unshallow + - name: Install packages + run: | + brew install qt + - name: Build + run: | + cd $GITHUB_WORKSPACE + mkdir build + cd build + qmake6 CONFIG+=UNITTESTS .. + make -j $(sysctl -n hw.logicalcpu) + make check + build-unix: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-20.04 + QT_FILE: qtBase_6.5.2_ubuntu20.zip + LIBDE265_REMOTE: libde265.so + LIBDE265_LOCAL: libde265-internals.so + ARTIFACT_NAME: YUView.Ubuntu20.AppImage + CPU_COUNT_COMMAND: nproc + - os: macos-11 + QT_FILE: qtBase_6.5.2_mac11.zip + LIBDE265_REMOTE: libde265.dylib + LIBDE265_LOCAL: libde265-internals.dylib + ARTIFACT_NAME: YUView-Mac11-BigSur.zip + CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu + - os: macos-12 + QT_FILE: qtBase_6.5.2_mac12.zip + LIBDE265_REMOTE: libde265.dylib + LIBDE265_LOCAL: libde265-internals.dylib + ARTIFACT_NAME: YUView-Mac12-Monterey.zip + CPU_COUNT_COMMAND: sysctl -n hw.logicalcpu + steps: + - uses: actions/checkout@v4 + - run: git fetch --prune --unshallow + - name: Install Qt base + run: | + cd ../../ + mkdir -p YUViewQt/YUViewQt + cd YUViewQt/YUViewQt + curl -L https://github.com/ChristianFeldmann/YUViewQt/releases/download/QtBase-6.5.2/${{matrix.QT_FILE}} -o Qt.zip + unzip -qa Qt.zip + echo "$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin" >> $GITHUB_PATH + shell: bash + - name: Install Linuxdeployqt + run: | + curl -L https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage -o linuxdeployqt-6-x86_64.AppImage + chmod a+x linuxdeployqt-6-x86_64.AppImage + if: matrix.os == 'ubuntu-20.04' + - name: Install Linux packages + run: | + sudo apt-get update + sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libpcre2-16-0 '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libfuse2 + if: matrix.os == 'ubuntu-20.04' + - name: Install libde265 + run: | + curl -L https://github.com/ChristianFeldmann/libde265/releases/download/v1.1/${{matrix.LIBDE265_REMOTE}} -o ${{matrix.LIBDE265_LOCAL}} + curl -L https://raw.githubusercontent.com/ChristianFeldmann/libde265/master/COPYING -o libde265License.txt + shell: bash + - name: Build Linux/Mac + run: | + cd $GITHUB_WORKSPACE + export PATH=$GITHUB_WORKSPACE/../../YUViewQt/YUViewQt/Qt/bin:$PATH + mkdir build + cd build + qmake CONFIG+=UNITTESTS .. + make -j $(${{matrix.CPU_COUNT_COMMAND}}) + make check + - name: Build App (Mac) + run: | + macdeployqt build/YUViewApp/YUView.app -always-overwrite -verbose=2 + cp ${{matrix.LIBDE265_LOCAL}} build/YUViewApp/YUView.app/Contents/MacOS/. + cd build/YUViewApp + # Zip + zip -r ${{matrix.ARTIFACT_NAME}} YUView.app/ + mkdir $GITHUB_WORKSPACE/artifacts + cp ${{matrix.ARTIFACT_NAME}} $GITHUB_WORKSPACE/artifacts/ + if: matrix.os == 'macos-11' || matrix.os == 'macos-12' + - name: Build Appimage (Linux) + run: | + cd build + make INSTALL_ROOT=appdir install + $GITHUB_WORKSPACE/linuxdeployqt-6-x86_64.AppImage YUViewApp/appdir/usr/local/share/applications/de.rwth_aachen.ient.YUView.desktop -appimage -bundle-non-qt-libs -verbose=2 + mv YUView-*.AppImage YUView.AppImage + mkdir $GITHUB_WORKSPACE/artifacts + cp YUView.AppImage $GITHUB_WORKSPACE/artifacts/ + if: matrix.os == 'ubuntu-20.04' + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: ${{matrix.ARTIFACT_NAME}} + path: artifacts + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + files: artifacts/${{matrix.ARTIFACT_NAME}} build-windows: runs-on: ${{ matrix.os }} strategy: @@ -155,7 +155,7 @@ jobs: ARTIFACT_NAME: YUView-Win2019-noautoupdate.zip QT_FILE: qtBase_6.5.2_win2019.zip steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ilammy/msvc-dev-cmd@v1 - run: git fetch --prune --unshallow - name: Install Qt base @@ -215,10 +215,6 @@ jobs: python deployment/versioning.py -d deploy -o deploy/versioninfo.txt mkdir artifacts 7z a artifacts/YUView-Win.zip ./deploy/* - - name: List Program dir - run: | - cd "C:\Program Files (x86)" - dir - name: Wix Windows run: | cd ${{ github.workspace }}/deployment/wix