stages: - build - release variables: VS_DIR: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools" VS_ENV: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools/Microsoft.VisualStudio.DevShell.dll" CMAKE_BUILD_TYPE: Release PROJECT_VERSION: "0.2.4" CMAKE_GENERATOR: "Ninja" PROJECT_NAME: "frelay" ARCH_TYPE: x64 QT_PATH: "C:/Dev/qt6" QT_XP: "C:/Qt/Qt5.7.1" RELEASENAME: "$PROJECT_NAME-v$PROJECT_VERSION" DESCRIPTION: | # BUG修正 - 上传方完成后,接收端未接收完毕不能退出的问题。 - 主动中断检查等待后,软件崩溃。 # 优化 - 优化访问文件过多时,界面有卡顿情况。 - 优化资源占用多的问题。 # 功能新增 - 支持弹窗查看文件(夹)属性。 - 支持删除、重命名、新建文件(夹)。 - 文件管理器新增直接可以下载/上传功能。 - Console端,断连或者连接失败自动退出。 # 关于预构建包 Windows XP系统请使用`Windows-GNU`版本。 # Windows运行器配置 .win-template: &win tags: - win before_script: - echo "Running on Windows runner" artifacts: expire_in: 1 hour # Windows构建 - 在win运行器上执行 build-xp: <<: *win stage: build rules: - if: $CI_COMMIT_TAG before_script: - $env:QT_DIR = "$env:QT_XP/5.7/mingw53_32" - $env:COMPILE_DIR = "$env:QT_XP/Tools/mingw530_32" - $env:PATH = "$env:COMPILE_DIR/bin;$env:PATH" script: - Write-Host "开始Windows XP构建..." - Write-Host "$env:QT_DIR" - Write-Host "$env:COMPILE_DIR" - cmake -Bbuild-xp -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" -DCMAKE_PREFIX_PATH="$env:QT_DIR" -DQT_DEFAULT_MAJOR_VERSION=5 -DCOMPILE_GUI=ON -DRELEASE_MARK=ON - cmake --build build-xp --config "$CMAKE_BUILD_TYPE" - Write-Host "package windows start..." - cd build-xp - cpack artifacts: paths: - build-xp/frelay-release-v$PROJECT_VERSION-Windows-GNU.exe - build-xp/frelay-release-v$PROJECT_VERSION-Windows-GNU.zip build-windows: <<: *win stage: build rules: - if: $CI_COMMIT_TAG script: - Import-Module $VS_ENV - Enter-VsDevShell -VsInstallPath $VS_DIR -DevCmdArguments "-arch=$ARCH_TYPE" - cmake -Bbuild -G "$CMAKE_GENERATOR" -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" -DCMAKE_PREFIX_PATH="$QT_PATH" -DQT_DEFAULT_MAJOR_VERSION=6 -DCOMPILE_GUI=ON -DRELEASE_MARK=ON - cmake --build build --config "$CMAKE_BUILD_TYPE" - Write-Host "package windows start..." - cd build - cpack artifacts: paths: - build/frelay-release-v$PROJECT_VERSION-Windows-MSVC.exe - build/frelay-release-v$PROJECT_VERSION-Windows-MSVC.zip create-release: stage: release needs: ["build-windows", "build-xp"] tags: - pi variables: RELEASE_TAG: "v$PROJECT_VERSION" RELEASE_NAME: "$RELEASENAME" RELEASE_DESCRIPTION: "$DESCRIPTION" rules: - if: $CI_COMMIT_TAG script: - echo "start release" - > curl --fail --show-error --header "JOB-TOKEN: $CI_JOB_TOKEN" \ --upload-file "build/frelay-release-v$PROJECT_VERSION-Windows-MSVC.exe" \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-MSVC.exe" - > curl --fail --show-error --header "JOB-TOKEN: $CI_JOB_TOKEN" \ --upload-file "build/frelay-release-v$PROJECT_VERSION-Windows-MSVC.zip" \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-MSVC.zip" - > curl --fail --show-error --header "JOB-TOKEN: $CI_JOB_TOKEN" \ --upload-file "build-xp/frelay-release-v$PROJECT_VERSION-Windows-GNU.exe" \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-GNU.exe" - > curl --fail --show-error --header "JOB-TOKEN: $CI_JOB_TOKEN" \ --upload-file "build-xp/frelay-release-v$PROJECT_VERSION-Windows-GNU.zip" \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-GNU.zip" release: tag_name: $RELEASE_TAG name: $RELEASE_NAME description: $RELEASE_DESCRIPTION assets: links: - name: "frelay-release-v$PROJECT_VERSION-Windows-MSVC.exe" url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-MSVC.exe" - name: "frelay-release-v$PROJECT_VERSION-Windows-MSVC.zip" url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-MSVC.zip" - name: "frelay-release-v$PROJECT_VERSION-Windows-GNU.exe" url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-GNU.exe" - name: "frelay-release-v$PROJECT_VERSION-Windows-GNU.zip" url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/frelay-release-v$PROJECT_VERSION-Windows-GNU.zip"