Skip to content

CI/CD ARM 러너 전환 및 Compose 설정 로딩 안정화#200

Merged
zionhann merged 2 commits intoHandongSF:mainfrom
zionhann:chore/cicd-arm-runner-compose-env
Mar 5, 2026
Merged

CI/CD ARM 러너 전환 및 Compose 설정 로딩 안정화#200
zionhann merged 2 commits intoHandongSF:mainfrom
zionhann:chore/cicd-arm-runner-compose-env

Conversation

@zionhann
Copy link
Member

@zionhann zionhann commented Mar 5, 2026

  • GitHub Actions 도커 빌드 잡을 ARM 러너 기준으로 단순화하고 이미지 태그를 latest로 정리

    배포 대상 아키텍처와 빌드 환경을 맞춰 플랫폼 차이로 생길 수 있는 예외를 줄이기 위해 러너 구성을 조정했습니다. 기존 QEMU 멀티플랫폼 단계와 플랫폼 지정 옵션을 제거해 파이프라인 복잡도와 유지보수 비용을 낮췄습니다. 이미지 태그를 dev에서 latest로 통일해 배포 파이프라인의 참조 규칙을 명확히 했습니다. 워크플로우 명칭도 현재 운영 흐름에 맞춰 정리해 CI/CD 의도를 빠르게 파악할 수 있게 했습니다.

  • docker-compose 환경 변수 키/값 형식을 Spring 규칙에 맞게 정정하고 프로필 기본값을 일치

    Compose 리스트 환경 변수에서 값에 따옴표를 포함하면 런타임 값에도 따옴표가 남아 Spring이 설정 경로를 잘못 해석할 수 있어 이를 제거했습니다. 리뷰 지적사항에 맞춰 추가 설정 키를 SPRING_CONFIG_ADDITIONAL_LOCATION으로 수정해 바인딩 규칙을 준수하도록 맞췄습니다. 추가 설정 파일 경로는 ACTIVE_PROFILE 기본값(dev)과 동일하게 치환되도록 정리해 프로필 해석과 경로 계산이 일관되게 동작합니다. 이를 통해 /config/application-<profile>.yml 로딩 실패 가능성을 줄이고 배포 안정성을 높였습니다.

@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

📝 Walkthrough

개요

CI/CD 워크플로우 설정 변경과 Docker Compose 환경 설정 변경을 포함합니다. 워크플로우는 Ubuntu 러너 업데이트, 태그 변경, 불필요한 단계 제거를 포함합니다. Docker Compose는 Spring 프로필 설정 형식이 변경되고 추가 설정 파일 위치가 추가되었습니다.

변경 사항

Cohort / File(s) 요약
CI/CD 워크플로우
.github/workflows/gradle.yml
워크플로우명을 CI에서 CI/CD로 변경, Docker 작업 실행자를 ubuntu-latest에서 ubuntu-24.04-arm으로 변경, DEV_TAG를 "dev"에서 "latest"로 수정, setup-qemu 단계 제거, Buildx의 다중 아키텍처 플랫폼 지정 제거, Jenkins 배포 작업명 변경
Docker Compose 환경
docker-compose.yml
SPRING_PROFILES_ACTIVE 환경 변수 형식을 YAML 리스트 형식으로 변경, 추가 Spring 설정 파일 경로 SPRING_CONFIG_ADDITIONAL-LOCATION 항목 추가
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed PR 설명은 두 가지 주요 변경사항(ARM 러너 전환 및 docker-compose 환경 변수 수정)을 자세히 설명하고 있으며, 변경사항의 목적과 기술적 근거를 포함하고 있습니다.
Title check ✅ Passed PR 제목이 변경 사항의 주요 내용을 정확히 반영하고 있습니다. ARM 러너 변경과 Compose 설정 파일 위치 명시라는 두 가지 핵심 변경사항을 간결하게 요약하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 CI/CD 파이프라인의 효율성과 안정성을 개선하고, 애플리케이션 배포 환경 설정을 유연하게 관리하기 위한 변경 사항을 포함합니다. 도커 이미지 빌드 환경을 실제 배포 타깃과 일치시켜 아키텍처 불일치 문제를 줄이고, 빌드 워크플로우를 간소화했습니다. 또한, 도커 컴포즈 환경 변수 관리 방식을 개선하여 프로필별 설정 파일을 동적으로 로드할 수 있도록 함으로써, 다양한 환경에서 애플리케이션을 일관되게 운영할 수 있는 기반을 마련했습니다.

Highlights

  • CI/CD 도커 빌드 러너 전환 및 이미지 태그 통일: GitHub Actions 도커 이미지 빌드 잡을 ARM 러너 기반으로 단순화하고, 불필요한 QEMU 멀티플랫폼 단계와 플랫폼 지정 옵션을 제거했습니다. 이미지 태그를 dev에서 latest로 통일하여 배포 파이프라인의 참조 규칙을 명확히 했으며, CI 및 잡 이름을 현재 운영 흐름에 맞춰 정리했습니다.
  • Docker Compose 환경 변수 형식 보정 및 추가 설정 파일 경로 주입: docker-compose.yml에서 Compose 환경 변수 선언 형식을 리스트 형식으로 보정하여 키-값 전달의 일관성을 확보했습니다. 또한, SPRING_CONFIG_ADDITIONAL-LOCATION 변수를 추가하여 ACTIVE_PROFILE에 대응하는 외부 설정 파일을 /config에서 읽도록 경로를 명시했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • docker-compose.yml
    • environment 섹션의 SPRING_PROFILES_ACTIVE 변수 선언 방식을 리스트 형식으로 변경했습니다.
    • SPRING_CONFIG_ADDITIONAL-LOCATION 환경 변수를 추가하여 /config 디렉토리에서 프로필별 application-{ACTIVE_PROFILE}.yml 파일을 로드하도록 설정했습니다.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/gradle.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7ec0774930

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
.github/workflows/gradle.yml (1)

61-61: 변수명과 값의 의미를 맞추면 읽기 비용이 줄어듭니다.

Line 61은 값이 latest인데 변수명이 DEV_TAG라 의도가 헷갈립니다. LATEST_TAG로 맞추는 걸 권장합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/gradle.yml at line 61, The variable DEV_TAG is misleading
because its value is "latest"; rename the variable to LATEST_TAG and update all
references in the workflow to use LATEST_TAG (replace occurrences of DEV_TAG in
the gradle.yml actions/steps and any env or shell interpolation). Ensure any
downstream steps, expressions, or matrix entries that previously read DEV_TAG
are updated and that the variable name change preserves the same value
("latest") and behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/gradle.yml:
- Line 90: 워크플로우 이름 "Trigger Jenkins Deploy (dev)"와 실행 조건(브랜치 필터: main)이 불일치합니다;
.github/workflows/gradle.yml에서 워크플로우 name 필드("Trigger Jenkins Deploy (dev)") 또는
트리거 조건(현재 main으로만 실행되도록 설정된 브랜치 필터)을 일치시키도록 수정하세요 — 즉 dev 배포로 의도했다면 브랜치 조건을 dev로
변경하거나, main에서 실행할 의도라면 name을 "Trigger Jenkins Deploy (main)" 등으로 변경하여 혼란을 제거하세요.

In `@docker-compose.yml`:
- Around line 8-9: The environment variable key and value format are wrong so
Spring Boot profiles aren't loaded: replace the hyphenated key
SPRING_CONFIG_ADDITIONAL-LOCATION with SPRING_CONFIG_ADDITIONALLOCATION, remove
the surrounding quotes from the value, and ensure the default profile is used in
the path (use ${ACTIVE_PROFILE:-dev} for both SPRING_PROFILES_ACTIVE and inside
the config path) — alternatively convert the environment list to a YAML map
under the service's environment block (e.g., SPRING_PROFILES_ACTIVE:
${ACTIVE_PROFILE:-dev} and SPRING_CONFIG_ADDITIONALLOCATION:
file:/config/application-${ACTIVE_PROFILE:-dev}.yml) to avoid Docker Compose
quoting/list issues.

---

Nitpick comments:
In @.github/workflows/gradle.yml:
- Line 61: The variable DEV_TAG is misleading because its value is "latest";
rename the variable to LATEST_TAG and update all references in the workflow to
use LATEST_TAG (replace occurrences of DEV_TAG in the gradle.yml actions/steps
and any env or shell interpolation). Ensure any downstream steps, expressions,
or matrix entries that previously read DEV_TAG are updated and that the variable
name change preserves the same value ("latest") and behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 37b66261-0f1b-4c17-b8a4-3515234d2145

📥 Commits

Reviewing files that changed from the base of the PR and between fe86d94 and 7ec0774.

📒 Files selected for processing (2)
  • .github/workflows/gradle.yml
  • docker-compose.yml

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request aims to transition the CI/CD Docker build runner to ARM and refine Docker Compose environment variables. However, a critical misconfiguration was found in docker-compose.yml: a hyphen was used in an environment variable name instead of an underscore. This prevents Spring Boot from loading additional configuration files, potentially leaving the application in an insecure state by falling back to default development settings. Addressing this will ensure proper separation of environment-specific configurations.

@zionhann zionhann changed the title CI/CD 도커 빌드 러너 전환 및 Compose 환경 변수 정리 CI/CD ARM 러너 전환 및 Compose 설정 키 정정 Mar 5, 2026
@zionhann zionhann changed the title CI/CD ARM 러너 전환 및 Compose 설정 키 정정 도커 빌드 워크플로우 ARM 러너 변경 및 컴포즈 설정 파일 위치 명시 Mar 5, 2026
@zionhann zionhann merged commit 41c94a7 into HandongSF:main Mar 5, 2026
3 checks passed
@zionhann zionhann changed the title 도커 빌드 워크플로우 ARM 러너 변경 및 컴포즈 설정 파일 위치 명시 CI/CD ARM 러너 전환 및 Compose 설정 로딩 안정화 Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant