From 2a557856cecc46883670432473d3fd07fb6facbb Mon Sep 17 00:00:00 2001 From: Remisa Yousefvand Date: Wed, 27 Nov 2024 00:46:59 +0330 Subject: [PATCH] github action #119 --- .github/workflows/cmake-multi-platform.yml | 101 ++------------------- 1 file changed, 9 insertions(+), 92 deletions(-) diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index b42102a..fdfcef4 100755 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -66,7 +66,7 @@ jobs: $bisonPath = "C:\ProgramData\chocolatey\bin\bison.exe" if (-not (Test-Path $bisonPath)) { Write-Host "bison is not available via Chocolatey. Installing manually..." - $bisonUrl = "https://sourceforge.net/projects/gnuwin32/files/bison/2.4.1/bison-2.4.1-bin.zip/download" + $bisonUrl = "https://downloads.sourceforge.net/project/gnuwin32/bison/2.4.1/bison-2.4.1-bin.zip" $bisonDir = "C:\bison" $bisonZip = "$bisonDir\bison.zip" New-Item -ItemType Directory -Path $bisonDir -Force @@ -86,19 +86,19 @@ jobs: } } - # Ensure the ZIP file exists and is valid - if (-not (Test-Path $bisonZip) -or (Get-Item $bisonZip).Length -eq 0) { - Write-Host "Error: bison ZIP file was not downloaded correctly." + # Verify if the download is successful + if (-not (Test-Path $bisonZip) -or (Get-Item $bisonZip).Length -lt 100000) { + Write-Host "Error: bison ZIP file is invalid or incomplete. Exiting." exit 1 } - + # Extract the ZIP archive using 7-Zip $sevenZipPath = "C:\Program Files\7-Zip\7z.exe" if (-not (Test-Path $sevenZipPath)) { choco install 7zip -y } Start-Process -FilePath $sevenZipPath -ArgumentList "x `"$bisonZip`" -o`"$bisonDir`" -y" -NoNewWindow -Wait - + # Ensure extraction succeeded if (-not (Test-Path "$bisonDir\bin\bison.exe")) { Write-Host "Error: bison could not be extracted. Exiting." @@ -134,90 +134,7 @@ jobs: # Add tools to PATH $env:PATH += ";C:\ProgramData\chocolatey\bin;C:\Program Files\LLVM\bin" - [System.Environment]::SetEnvironmentVariable("PATH", $env:PATH, [System.EnvironmentVariableTarget]::Process) - - - name: Restore Qt Source Cache (Windows) - if: matrix.os == 'windows-latest' - uses: actions/cache@v3 - with: - path: D:\qt-source - key: qt-source-6.5.3-windows - restore-keys: | - qt-source- - - - name: Validate Qt Source Cache or Download (Windows) - if: matrix.os == 'windows-latest' - shell: powershell - run: | - $qtSourceDir = "D:\qt-source" - $qtZip = "$qtSourceDir\qt-everywhere-src-6.5.3.zip" - if (-Not (Test-Path "$qtSourceDir\qt-everywhere-src-6.5.3\qtbase\configure.bat")) { - Write-Host "Cache not found or incomplete. Downloading Qt Source..." - New-Item -ItemType Directory -Path $qtSourceDir -Force - Invoke-WebRequest -Uri "https://download.qt.io/official_releases/qt/6.5/6.5.3/single/qt-everywhere-src-6.5.3.zip" -OutFile $qtZip - Expand-Archive -Path $qtZip -DestinationPath $qtSourceDir - } else { - Write-Host "Qt source found in cache." - } - dir "$qtSourceDir\qt-everywhere-src-6.5.3\qtbase" - - - name: Build and Install Qt from Source (Windows) - if: matrix.os == 'windows-latest' - shell: cmd - run: | - REM Locate Visual Studio Build Tools - FOR /F "tokens=*" %%i IN ('"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" ^ - -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath') DO SET VS_PATH=%%i - IF NOT DEFINED VS_PATH ( - echo Visual Studio Build Tools not found! && exit /b 1 - ) - SET "VS_VARS_CMD=%VS_PATH%\VC\Auxiliary\Build\vcvars64.bat" - CALL "%VS_VARS_CMD%" || exit /b 1 - - REM Build Qt from source - SET QT_SOURCE=D:\qt-source\qt-everywhere-src-6.5.3 - IF NOT EXIST "%QT_SOURCE%\qtbase\configure.bat" ( - echo "configure.bat not found in %QT_SOURCE%\qtbase" && exit /b 1 - ) - cd "%QT_SOURCE%\qtbase" - call configure.bat -top-level -prefix C:\Qt -release -opensource -confirm-license -nomake examples -nomake tests -platform win32-msvc -cmake-generator Ninja ^ - -DFEATURE_clang=ON ^ - -DFEATURE_clangcpp=ON ^ - -DLLVM_INSTALL_DIR="C:/Program Files/LLVM" ^ - -Wno-dev || exit /b 1 - - REM Verify if build.ninja exists - IF NOT EXIST build.ninja ( - echo "Error: build.ninja not generated. Check configuration step for issues." && exit /b 1 - ) - - REM Proceed with the build and install steps - ninja || exit /b 1 - ninja install || exit /b 1 - - - name: Set Qt Environment Variables (Windows) - if: matrix.os == 'windows-latest' - shell: powershell - run: | - echo "Qt6_DIR=C:\Qt\lib\cmake\Qt6" >> $env:GITHUB_ENV - echo "QT_PLUGIN_PATH=C:\Qt\plugins" >> $env:GITHUB_ENV - echo "QML2_IMPORT_PATH=C:\Qt\qml" >> $env:GITHUB_ENV - - # Configure CMake - - name: Configure CMake - run: | - cmake -B "${{ github.workspace }}/build" \ - -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} \ - -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ - -DCMAKE_BUILD_TYPE=Release \ - -G "Ninja" \ - -S "${{ github.workspace }}" - - # Build the project - - name: Build - run: cmake --build "${{ github.workspace }}/build" --config Release + [System.EnvironmentVariableTarget]::Process) - # Run tests - - name: Test - working-directory: "${{ github.workspace }}/build" - run: ctest --output-on-failure --build-config Release + # Restore Qt Source Cache and Build Workflow Continues... + #