[flutter] 플러터 build_runner와 CI/CD 파이프라인 연동하기

플러터(Flutter) 앱을 개발하는 동안 코드 생성 및 관리를 위해 build_runner와 CI/CD 파이프라인을 연동하는 것이 중요합니다. 이번 포스트에서는 build_runner를 사용하여 코드를 생성하고 변경 사항을 관리하는 방법을 살펴보고, GitHub Actions를 이용하여 CI/CD 파이프라인과 연동하는 방법을 알아보겠습니다.

1. build_runner란 무엇인가?

build_runner는 Flutter나 Dart 프로젝트에서 코드 생성, 컴파일, 코드 생성된 파일의 관리를 지원하는 도구입니다. 주로 모델 클래스, JSON 직렬화, 라우팅과 같은 코드를 자동으로 생성하거나 관리할 때 사용됩니다.

2. build_runner 설정하기

프로젝트의 pubspec.yaml 파일에 다음과 같이 build_runner와 필요한 의존성을 추가합니다:

dev_dependencies:
  build_runner: ^2.1.3
  json_serializable: ^5.0.0
  // 다른 의존성들...

이후, 터미널에서 아래 명령어를 실행하여 build_runner를 사용할 수 있습니다:

flutter pub get

그리고 코드에 build_runner를 적용하기 위해 다음과 같이 주석을 추가하고 코드를 작성합니다:

import 'package:json_annotation/json_annotation.dart';

part 'user.g.dart';

@JsonSerializable()
class User {
  final String name;
  final int age;

  User({required this.name, required this.age});

  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
  Map<String, dynamic> toJson() => _$UserToJson(this);
}

3. GitHub Actions를 이용한 CI/CD 파이프라인 구성

개발한 앱의 빌드, 코드 품질 확인, 자동 테스트 등의 작업을 자동화하기 위해 GitHub Actions를 설정할 수 있습니다. 다음은 간단한 CI/CD 파이프라인 설정 예시입니다:

name: Flutter CI/CD

on: [push, pull_request]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Setup Flutter
      uses: subosito/flutter-action@v2
      with:
        flutter-version: '2.10.4'  # Flutter 버전

    - name: Install dependencies
      run: flutter pub get

    - name: Run build_runner
      run: flutter pub run build_runner build

    - name: Run tests
      run: flutter test

이 설정을 통해 코드가 푸시되거나 풀리퀘스트가 생성될 때마다 빌드, 테스트, 코드 생성 등의 작업이 자동으로 수행됩니다.

4. 결론

build_runner와 CI/CD 파이프라인을 연동하여 Flutter 앱의 개발 및 배포 과정을 자동화하는 것은 효율적인 개발을 위해 필수적입니다. build_runner를 사용하여 코드를 관리하고, GitHub Actions를 이용하여 CI/CD 파이프라인을 구성함으로써, 앱의 개발 및 배포과정을 더욱 효율적으로 관리할 수 있습니다.

참고문헌:

관련 포스트: