0.9.5 #254
Workflow file for this run
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
name: CI | |
on: [push, pull_request, workflow_dispatch] | |
env: | |
# Path to the solution file relative to the root of the project. | |
SOLUTION_FILE_PATH: . | |
# Configuration type to build. | |
# You can convert this to a build matrix if you need coverage of multiple configuration types. | |
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
BUILD_CONFIGURATION: Release | |
jobs: | |
build: | |
name: Build & test on ${{ matrix.os }} with ${{ matrix.compiler }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-12, windows-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Checkout subrepos | |
if: "!startsWith(matrix.os, 'windows')" | |
run: ./update_repository.sh | |
- name: Checkout subrepos | |
if: "startsWith(matrix.os, 'windows')" | |
shell: cmd | |
run: update_repository.bat | |
- name: Install Qt | |
if: "!startsWith(matrix.os, 'ubuntu')" | |
uses: jurplel/install-qt-action@v3 | |
- name: Install Qt | |
if: "startsWith(matrix.os, 'ubuntu')" | |
uses: jurplel/install-qt-action@v3 | |
with: | |
archives: 'qtbase icu' | |
- name: Sys info | |
if: "startsWith(matrix.os, 'windows')" | |
run: wmic cpu get name, numberofcores, maxclockspeed | |
- name: Sys info | |
if: "startsWith(matrix.os, 'mac')" | |
run: sysctl -a | grep cpu | grep hw | |
- name: Sys info | |
if: "startsWith(matrix.os, 'ubuntu')" | |
run: lscpu | |
- name: Windows - setup MSBuild | |
if: startsWith(matrix.os, 'windows') | |
uses: microsoft/[email protected] | |
- name: Windows - building main installer | |
if: startsWith(matrix.os, 'windows') | |
shell: cmd | |
run: | | |
%Qt5_DIR%\bin\qmake.exe -v | |
set QTDIR64=%Qt5_DIR% | |
cd installer\windows\ | |
create_installer.bat | |
cd ..\.. | |
xcopy /R /Y .\installer\windows\binaries\64\msvcr\* .\bin\release\x64\ | |
xcopy /R /Y .\installer\windows\binaries\64\Qt\* .\bin\release\x64\ | |
- name: Mac | |
if: startsWith(matrix.os, 'macos') | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
clang --version | |
./installer/mac/create_dmg.sh $Qt5_DIR | |
- name: Linux | |
if: startsWith(matrix.os, 'ubuntu') | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
export QT_DEBUG_PLUGINS=1 | |
sudo apt update -y; sudo apt install -qq gcc-12 g++-12 libglu1-mesa-dev libx11-xcb-dev '^libxcb*' '^libxkb*' libfuse2 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 50 | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 50 | |
g++ --version | |
export PATH=$Qt5_DIR/bin/:$PATH | |
wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/7/linuxdeployqt-7-x86_64.AppImage" | |
chmod a+x linuxdeployqt-7-x86_64.AppImage | |
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH | |
$Qt5_DIR/bin/qmake -r CONFIG+=release | |
make -j | |
# Linux: building AppImage | |
cp ./qt-app/resources/icon.png ./bin/release/x64/ | |
cp ./installer/linux/file_commander.desktop ./bin/release/x64/ | |
./linuxdeployqt-7-x86_64.AppImage ./bin/release/x64/FileCommander -appimage -unsupported-allow-new-glibc -bundle-non-qt-libs -qmake=$QMAKE -executable=./bin/release/x64/libplugin_filecomparison.so.1.0.0 -executable=./bin/release/x64/libplugin_imageviewer.so.1.0.0 -executable=./bin/release/x64/libplugin_textviewer.so.1.0.0 | |
ls -Ac | |
mv ./File_Commander*.AppImage ./FileCommander.AppImage | |
- name: Test launch | |
if: startsWith(matrix.os, 'macos') | |
run: ./bin/release/x64/FileCommander.app/Contents/MacOS/FileCommander --test-launch | |
- name: Test launch | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
xvfb-run --auto-servernum ./bin/release/x64/FileCommander --test-launch | |
- name: Test launch | |
if: startsWith(matrix.os, 'widows') | |
run: | | |
.\bin\release\x64\FileCommander.exe --test-launch | |
- name: Building tests - Windows | |
if: startsWith(matrix.os, 'windows') | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
shell: cmd | |
run: | | |
cd file-commander-core\core-tests\ | |
dir | |
call "%programfiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 && "%Qt5_DIR%\bin\qmake.exe" -tp vc -r | |
msbuild /t:Build /p:Configuration=Release;PlatformToolset=v143 core-tests.sln | |
cd ..\.. | |
- name: Running tests - Windows | |
if: startsWith(matrix.os, 'windows') | |
shell: powershell | |
run: | | |
.\bin\release\x64\fso_test.exe | |
.\bin\release\x64\fso_test_high_level.exe | |
For ($i=1; $i -le 20; $i++) { | |
$randomSeed = ((get-date -Uformat %s).remove(10, 1)); | |
$randomSeed = $randomSeed.substring($randomSeed.Length - 8); | |
& .\bin\release\x64\operationperformer_test.exe --std-seed $randomSeed; | |
} | |
$randomSeed = ((get-date -Uformat %s).remove(10, 1)); | |
$randomSeed = $randomSeed.substring($randomSeed.Length - 8); | |
& .\bin\release\x64\filecomparator_test.exe --std-seed $randomSeed; | |
- name: Building tests - Mac | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
cd file-commander-core/core-tests | |
$Qt5_DIR/bin/qmake -r CONFIG+=release | |
make -j | |
cd ../../ | |
for f in $(find bin/release/x64/ -name *.app); do $Qt5_DIR/bin/macdeployqt $f; done | |
- name: Running tests - Mac | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
set -e; ./bin/release/x64/fso_test.app/Contents/MacOS/fso_test | |
set -e; ./bin/release/x64/fso_test_high_level.app/Contents/MacOS/fso_test_high_level | |
set -e; for i in `seq 1 20`; do ./bin/release/x64/operationperformer_test.app/Contents/MacOS/operationperformer_test --std-seed $(date +%s); sleep 1; done | |
set -e; ./bin/release/x64/filecomparator_test.app/Contents/MacOS/filecomparator_test --std-seed $(date +%s) | |
- name: Building tests - Linux | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
cd file-commander-core/core-tests | |
$Qt5_DIR/bin/qmake -r CONFIG+=release | |
make -j | |
cd ../../ | |
for f in $(find bin/release/x64/ -name *.app); do $Qt5_DIR/bin/macdeployqt $f; done | |
./linuxdeployqt-7-x86_64.AppImage ./bin/release/x64/fso_test -unsupported-allow-new-glibc -bundle-non-qt-libs | |
./linuxdeployqt-7-x86_64.AppImage ./bin/release/x64/fso_test_high_level -unsupported-allow-new-glibc -bundle-non-qt-libs | |
./linuxdeployqt-7-x86_64.AppImage ./bin/release/x64/operationperformer_test -unsupported-allow-new-glibc -bundle-non-qt-libs | |
./linuxdeployqt-7-x86_64.AppImage ./bin/release/x64/filecomparator_test -unsupported-allow-new-glibc -bundle-non-qt-libs | |
- name: Running tests - Linux | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
set -e; ./bin/release/x64/fso_test | |
set -e; ./bin/release/x64/fso_test_high_level | |
set -e; for i in `seq 1 20`; do ./bin/release/x64/operationperformer_test --std-seed $(date +%s); sleep 1; done | |
set -e; ./bin/release/x64/filecomparator_test --std-seed $(date +%s) | |
- name: Archive DMG | |
if: startsWith(matrix.os, 'macos') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: FileCommander.dmg | |
path: FileCommander.dmg | |
- name: Archive AppImage | |
if: startsWith(matrix.os, 'ubuntu') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: FileCommander.AppImage | |
path: FileCommander.AppImage | |
- name: Archive Installer | |
if: startsWith(matrix.os, 'windows') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: FileCommander.exe | |
path: installer/windows/FileCommander.exe |