自动化编译测试。
This commit is contained in:
68
.gitlab-ci.yml
Normal file
68
.gitlab-ci.yml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
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: "1.3.13"
|
||||||
|
CMAKE_GENERATOR: "Ninja"
|
||||||
|
PROJECT_NAME: "OneLevelXmlOpr"
|
||||||
|
ARCH_TYPE: x64
|
||||||
|
QT_PATH: "C:/Dev/Qt6"
|
||||||
|
RELEASENAME: "$PROJECT_NAME-v$PROJECT_VERSION"
|
||||||
|
DESCRIPTION: |
|
||||||
|
# $PROJECT_NAME v$PROJECT_VERSION
|
||||||
|
---
|
||||||
|
*自动化构建于: $CI_PIPELINE_URL*
|
||||||
|
|
||||||
|
# Windows运行器配置
|
||||||
|
.win-template: &win
|
||||||
|
tags:
|
||||||
|
- win
|
||||||
|
before_script:
|
||||||
|
- echo "Running on Windows runner"
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 hour
|
||||||
|
|
||||||
|
# Windows构建 - 在win运行器上执行
|
||||||
|
build-windows:
|
||||||
|
<<: *win
|
||||||
|
stage: build
|
||||||
|
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"
|
||||||
|
- cmake --build build --config "$CMAKE_BUILD_TYPE"
|
||||||
|
- Write-Host "package windows start..."
|
||||||
|
- cd "build/bin"
|
||||||
|
- "$QT_PATH/bin/windeployqt.exe" .\OneLevelXmlOpr.exe
|
||||||
|
- Compress-Archive -Path *.exe, *.dll -DestinationPath "$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip" -Recurse
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- build/bin/$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip
|
||||||
|
|
||||||
|
create-release:
|
||||||
|
stage: release
|
||||||
|
needs: ["build-windows"]
|
||||||
|
variables:
|
||||||
|
RELEASE_TAG: "v$PROJECT_VERSION"
|
||||||
|
RELEASE_NAME: "$RELEASENAME"
|
||||||
|
RELEASE_DESCRIPTION: "$DESCRIPTION"
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
|
script:
|
||||||
|
- echo "Creating release..."
|
||||||
|
- >
|
||||||
|
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" \
|
||||||
|
--upload-file "build/bin/$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip" \
|
||||||
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip"
|
||||||
|
release:
|
||||||
|
tag_name: $RELEASE_TAG
|
||||||
|
name: $RELEASE_NAME
|
||||||
|
description: $RELEASE_DESCRIPTION
|
||||||
|
assets:
|
||||||
|
links:
|
||||||
|
- name: "$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip"
|
||||||
|
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/v$PROJECT_VERSION/$PROJECT_NAME-v$PROJECT_VERSION-win-$ARCH_TYPE.zip"
|
||||||
Reference in New Issue
Block a user