세영님과 도훈님 PR의 CI가 전부 통과했음에도 dev 브랜치에서 빌드가 실패하는 일이 있었습니다.
현재 CI에서는 빌드가 잘 되는지 테스트하고, 실패하면 PR을 블락하고 있었는데요.
이 테스트가 전부 통과하면 당연히 dev 브랜치에서도 빌드가 잘 될거라고 생각했는데 아니었습니다.
마지막으로 이는 GitHub 설정에 Branch Protection으로 해결할 수 있었습니다.
자세한 내용은 아래와 같습니다.
먼저 세영님의 작업은 이렇습니다.
export interface Workspace {
id: number;
name: string;
}
export const postWorkspace = async ({
name,
}: PostParams): Promise<Workspace> => {
const res = await http.post(`/workspace`, { name });
postWorkspace()가 리턴타입으로 Workspace interface를 쓰고 있어요. 이 interface에 code 속성이 없다는 것을 주목해주세요.
도훈님 작업은 이렇습니다.
export const postWorkspace = async ({ name }: PostParams) => {
const res = await http.post(`/workspace`, { name });
if (res.status !== CREATED) throw new Error();
return res.data;
};
postWorkspace()가 세영님 코드와는 달리 리턴 타입 명시가 없어요.
const onSubmit = async () => {
const workspace = await postWorkspace({ name: inputValue });
const { code } = workspace;
그리고 postWorkspace()의 리턴값에서 code를 받고 있습니다.
이 또한 문제가 없기 때문에 CI를 통과했어요.