ubuntu

C++项目在Ubuntu如何进行持续集成

小樊
42
2025-11-15 13:01:38
栏目: 编程语言

在 Ubuntu 上为 C++ 项目搭建持续集成

一 方案总览与选型

二 快速上手 GitHub Actions

name: C++ CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install dependencies
        run: sudo apt-get update && sudo apt-get install -y g++ cmake

      - name: Configure
        run: |
          mkdir -p build
          cd build
          cmake -DCMAKE_BUILD_TYPE=Release ..

      - name: Build
        run: cmake --build build -j$(nproc)

      - name: Test
        run: cd build && ctest --output-on-failure

三 自托管 Jenkins 流水线

sudo apt update
sudo apt install -y openjdk-11-jre
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
pipeline {
  agent any
  stages {
    stage('Checkout') {
      steps { git url: 'https://github.com/your-org/your-cpp-project.git', branch: 'main' }
    }
    stage('Install deps') {
      steps { sh 'sudo apt-get update && sudo apt-get install -y g++ cmake' }
    }
    stage('Configure') {
      steps {
        sh 'mkdir -p build && cd build && cmake -DCMAKE_BUILD_TYPE=Release ..'
      }
    }
    stage('Build') {
      steps { sh 'cmake --build build -j$(nproc)' }
    }
    stage('Test') {
      steps { sh 'cd build && ctest --output-on-failure' }
    }
  }
}

四 其他托管与自建选项

五 质量门禁与最佳实践

0
看了该问题的人还看了