From 6e5753a4f3e2efadcee79ba5b5366227364c9b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drik=20Fuoco?= Date: Mon, 26 Aug 2024 12:51:17 -0400 Subject: [PATCH] Windows CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Cédrik Fuoco --- .github/workflows/ci.yml | 123 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..514ec76ec --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,123 @@ +name: OpenRV + +on: + push: + branches: + - 'feature/**' + paths: + - .github/workflows/ci.yml + + pull_request: + branches: + - 'feature/**' + paths: + - .github/workflows/ci.yml + +jobs: + windows: + runs-on: windows-latest + # Strawberry perl is installed by default. + # Using aqt to install Qt 5.15.2 (latest binary release of Qt Op) + env: + MSYS2_PATH_TYPE: inherit + 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: | + echo "%PYTHONPATH%" + echo "%PATH%" + python -c "import sys; print(sys.executable)" + + - name: Prepare Qt folder + run: | + mkdir -p ~/qt + + - name: Check Qt folder + run: | + if [ ! -d ~/qt ]; then + echo "Qt folder does not exist. Exiting." + exit 1 + fi + + - name: Cache Qt installation + uses: actions/cache@v3 + id: qt-cache + with: + path: ~/qt + 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: '~/qt' + # Linux option only - false for Windows + install-deps: 'false' + modules: 'debug_info qtcharts qtnetworkauth qtquick3d qtquicktimeline qtscript qtwebengine qtwebglplugin' + archives: 'd3dcompiler_47 opengl32sw qt3d qtactiveqt qtbase qtimageformats qtmultimedia qtquickcontrols qtquickcontrols2 qtscxml qtspeech qtsvg qttools qttranslations qtwebchannel qtwebsockets qtwebview qtwinextras qtxmlpatterns' + cache: ${{ steps.qt-cache.outputs.cache-hit != 'true' }} + cache-key-prefix: 'install-qt-action' + setup-python: 'false' + tools: '' + set-env: 'true' + tools-only: 'false' + aqtversion: '==3.1.*' + + - name: Setup msys2 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + install: >- + mingw-w64-x86_64-autotools + 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 + libtool + nasm + ninja + p7zip + patch + unzip + zip + + - name: Setup PATH environment variable + run: | + echo "PATH=C:/hostedtoolcache/windows/Python/3.10.11/x64:$PATH" >> $GITHUB_ENV + shell: msys2 {0} + + - name: Print PATH environment variable + run: | + echo $PATH + shell: msys2 {0} + + - name: Check Python executable location + run: | + which python + which python3 + shell: msys2 {0} + + - name: Configure + run: | + export QT_HOME=~/qt/5.15.2/msvc2019_64 + ls -al ~/qt/5.15.2/msvc2019_64 + source rvcmds.sh + rvbootstrap + shell: msys2 {0} \ No newline at end of file