Files
Testing/Jenkinsfile
T
2026-05-01 22:02:33 +03:00

75 lines
2.3 KiB
Groovy

pipeline {
agent any
options {
timestamps()
buildDiscarder(logRotator(numToKeepStr: '10'))
}
stages {
stage('Build Docker Image') {
steps {
sh '''
docker build \
-t cpp-mingw-vcpkg:latest \
-f docker/cpp-mingw-vcpkg/Dockerfile .
'''
}
}
stage('Build Linux') {
steps {
sh '''
docker run --rm \
-v "$PWD:/workspace" \
-w /workspace \
cpp-mingw-vcpkg:latest \
bash -c "
rm -rf build/linux &&
cmake -S . -B build/linux -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake &&
cmake --build build/linux
"
'''
}
}
stage('Build Windows MinGW') {
steps {
sh '''
docker run --rm \
-v "$PWD:/workspace" \
-w /workspace \
cpp-mingw-vcpkg:latest \
bash -c "
rm -rf build/windows &&
cmake -S . -B build/windows -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_TARGET_TRIPLET=x64-mingw-static \
-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \
-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ &&
cmake --build build/windows
"
'''
}
}
stage('Package') {
steps {
sh '''
mkdir -p artifacts
tar -czf artifacts/linux-build.tar.gz -C build linux
zip -r artifacts/windows-build.zip build/windows
'''
}
}
stage('Archive') {
steps {
archiveArtifacts artifacts: 'artifacts/*', fingerprint: true
}
}
}
}