스킬: 로컬 Twoliter 변경 사항 테스트
목적
로컬 소스에서 twoliter를 빌드하고, 릴리스 전 변경 사항을 테스트하기 위해 키트가 로컬에서 빌드된 바이너리를 사용하도록 구성합니다.
사용 시기
- twoliter 소스 코드를 변경하는 경우
- PR을 생성하기 전에 twoliter 수정 사항을 테스트하는 경우
- twoliter 동작을 디버깅하는 경우
- twoliter 수정 사항을 검증하는 경우
전제 조건
- 포레스트에 twoliter 저장소가 클론되어 있어야 함
- Rust 툴체인이 설치되어 있어야 함
- 테스트할 키트 저장소가 하나 이상 있어야 함
절차
1. twoliter 소스 변경
twoliter/twoliter/src/ 또는 twoliter/twoliter/embedded/ 디렉토리의 파일을 편집합니다.
2. twoliter 빌드
cd twoliter
cargo build --release
바이너리는 target/release/twoliter에 생성됩니다.
3. 변경 사항 테스트
TWOLITER_DIR을 로컬 빌드 디렉토리를 가리키도록 재정의합니다:
cd kits/bottlerocket-core-kit
make build TWOLITER_DIR=./twoliter/target/release
4. 반복
더 많은 변경을 한 후:
# twoliter 재빌드
cd ./twoliter
cargo build --release
# 다시 테스트
cd kits/bottlerocket-core-kit
make build TWOLITER_DIR=./twoliter/target/release
검증
로컬 twoliter가 사용되고 있는지 경로를 확인합니다:
cd kits/bottlerocket-core-kit
make build TWOLITER_DIR=./twoliter/target/release 2>&1 | head -5
수정된 twoliter가 호출되는 것을 확인할 수 있습니다.
일반적인 문제
변경 사항이 적용되지 않는 경우:
- 변경 후
cargo build --release를 실행했는지 확인하세요. TWOLITER_DIR의 경로가 올바른지 확인하세요.- 바이너리가 존재하는지 확인:
ls -lh ./twoliter/target/release/twoliter
twoliter 빌드 오류:
cargo check를 실행하여 상세한 오류 메시지를 확인하세요.cargo clippy를 실행하여 일반적인 문제를 찾으세요.cargo test를 실행하여 테스트가 통과하는지 확인하세요.
로컬 twoliter로 키트 빌드 실패:
- twoliter 출력에서 오류 메시지를 확인하세요.
- Makefile을 임시로 수정하거나 twoliter 바이너리를 직접 사용하여
--log-level debug를 추가하세요.
릴리스된 버전으로 되돌리기
릴리스된 버전을 사용하려면 TWOLITER_DIR 재정의를 생략하면 됩니다:
cd kits/bottlerocket-core-kit
make build
이 명령은 릴리스된 버전의 기본 tools/twoliter/twoliter를 사용합니다.