ci: self-hosted 러너(ml-main)로 이전 - #1
Conversation
GitHub-hosted 러너는 분 과금에 걸려 job 이 시작되지 않는다(step 0개로 즉시 실패). CI/CD 를 self-hosted 러너 ml-main 에서 실행하는 방침에 맞춰 워크플로를 옮긴다. - .github/workflows/gh-pages.yml (matrix.os 제거) ml-main 에는 passwordless sudo 가 없다. 그래서 sudo apt-get install 스텝이 있던 워크플로는 설치 대신 존재 검증으로 바꿨다 — 필요한 패키지(graphviz, Noto CJK/emoji 폰트)는 러너에 이미 설치돼 있고, 검증 스텝이 누락을 즉시 실패로 잡는다. 변환 후 전 파일 yaml.safe_load 파싱과 모든 job 의 runs-on 이 [self-hosted, ml-main] 인지 확인했다.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b1133ca249
ℹ️ 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".
| python-version: ["3.10"] | ||
| os: [ubuntu-22.04] | ||
| runs-on: ${{ matrix.os }} | ||
| runs-on: [self-hosted, ml-main] |
There was a problem hiding this comment.
Keep untrusted PRs off the self-hosted runner
For PRs from forks or other untrusted contributors, the existing pull_request trigger still runs this workflow, so changing runs-on here means attacker-controlled checkout/build commands like uv sync and Sphinx now execute on ml-main. GitHub's secure-use docs warn that self-hosted runners are not clean ephemeral VMs and can be persistently compromised by untrusted workflow code; keep the PR path on GitHub-hosted runners, gate it to trusted actors, or remove the PR trigger for this self-hosted job.
Useful? React with 👍 / 👎.
CI/CD 를 self-hosted 러너
ml-main에서 실행하는 방침에 맞춰 워크플로를 이전한다. GitHub-hosted 러너는 분 과금에 걸려 job 이 시작조차 되지 않는다(step 0개로 즉시 실패).변경
.github/workflows/gh-pages.yml (matrix.os 제거)러너 환경 주의
ml-main 에는 passwordless sudo 가 없다.
sudo apt-get install스텝이 있던 워크플로는 설치 대신 존재 검증으로 바꿨다 — 필요한 패키지(graphviz, Noto CJK/emoji 폰트)는 러너에 이미 설치돼 있고, 검증 스텝이 누락을 즉시 실패로 잡는다.검증
yaml.safe_load파싱 OK, 모든 job 의runs-on이[self-hosted, ml-main]인지 확인