0Pricing
C++ Academy · Pelajaran

Integrasi Berkelanjutan untuk Proyek C++

Siapkan CI GitHub Actions untuk proyek C++ dengan build lintas platform

Integrasi Berkelanjutan untuk Proyek C++ adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.

Mengapa CI?

Integrasi Berkelanjutan menjalankan pengujian Anda secara otomatis pada setiap perubahan. Proses ini menangkap kerusakan lebih awal, menegakkan kualitas, dan membebaskan manusia dari pemeriksaan manual.

GitHub Actions

CI paling populer untuk sumber terbuka. Tentukan alur kerja dalam berkas YAML di bawah .github/workflows/.

# .github/workflows/build.yml
name: Build and Test
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Configure
        run: cmake -B build
      - name: Build
        run: cmake --build build
      - name: Test
        run: ctest --test-dir build

Kompilasi Lintas Platform

Jalankan di Linux, macOS, dan Windows secara paralel menggunakan matriks.

strategy:
  matrix:
    os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}

Beberapa Kompilator

Lakukan pengujian dengan beberapa kompilator (GCC, Clang, MSVC) dan standar (C++17, C++20) — kompilasi berbasis matriks menangkap masalah portabilitas.

Kompilasi dengan Pemeriksa Sanitasi

Tambahkan tugas yang membangun dengan AddressSanitizer dan ThreadSanitizer. Pengujian berjalan lebih lambat, tetapi menangkap kutu nyata.

Melakukan Cache Dependensi

Simpan artefak kompilasi dan pemasangan dependensi dalam cache untuk mempercepat proses CI.

- uses: actions/cache@v4
  with:
    path: build/_deps
    key: ${{ runner.os }}-deps-${{ hashFiles('CMakeLists.txt') }}

Cakupan Kode

Bangun dengan --coverage (GCC) atau -fprofile-instr-generate -fcoverage-mapping (Clang). Unggah ke Codecov atau Coveralls untuk melacak tren.

Analisis Statis dalam CI

Jalankan clang-tidy dan cppcheck pada setiap PR. Gagalkan kompilasi jika ada peringatan baru.

Penegakan Format

Gunakan clang-format dengan .clang-format yang berlaku di seluruh proyek. CI menolak kode yang tidak diformat.

- name: Check format
  run: clang-format --dry-run --Werror src/*.cpp

GitLab CI

Untuk pengaturan yang dihosting sendiri, GitLab CI memiliki cara kerja serupa. Tentukan .gitlab-ci.yml dengan tahapan dan tugas.

Jenkins, CircleCI, BuildKite

Opsi CI lainnya:

  • Jenkins — dihosting sendiri, sangat fleksibel
  • CircleCI — layanan awan yang kuat, dengan integrasi Docker
  • BuildKite — hibrida (bidang kendali awan, pelaksana milik Anda)

Rilis dan Label

Picu pengemasan dan publikasi berdasarkan label versi. Bangun biner untuk berbagai platform, lampirkan ke Rilis GitHub, lalu kirim ke pengelola paket.

on:
  push:
    tags: ['v*']

Praktik Terbaik CI

Jaga agar proses CI tetap cepat (kurang dari 10 menit) dengan melakukan cache, menjalankan tugas secara paralel, dan memisahkan kompilasi. Jadikan kegagalan mudah ditindaklanjuti — gunakan pesan kesalahan yang jelas dan tautan langsung ke log.

Pemeriksaan Cepat

Fitur CI apa yang memungkinkan Anda menguji beberapa kompilator dan sistem operasi secara paralel?

Ringkasan

Siapkan CI untuk setiap proyek: GitHub Actions, GitLab, atau layanan yang dihosting sendiri. Lakukan kompilasi berbasis matriks untuk berbagai kompilator dan sistem operasi. Jalankan pengujian, pemeriksa sanitasi, analisis statis, dan pemeriksaan format pada setiap PR. Gunakan cache secara agresif, gagalkan proses dengan cepat, dan publikasikan rilis berdasarkan label versi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Integrasi Berkelanjutan untuk Proyek C++” gratis?

Ya — teks lengkap “Integrasi Berkelanjutan untuk Proyek C++” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Integrasi Berkelanjutan untuk Proyek C++”?

Siapkan CI GitHub Actions untuk proyek C++ dengan build lintas platform Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C++ Academy?

Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Integrasi Berkelanjutan untuk Proyek C++” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?

Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Alat Analisis Statis: clang-tidy, cppcheck
  2. Sanitizer: Address, Thread, UB Sanitizer
  3. Fuzzing dengan libFuzzer
  4. Integrasi Berkelanjutan untuk Proyek C++
← Kembali ke C++ Academy