νμ¬ κΈμ μνΈμμ μ΄μ΄μ§λλ€.λ€μ΄κ°κΈ° μμ ν΄λΉ κΈμμλ C Compiler μ λν μ§μμ νμλ‘ ν©λλ€. νμ§λ§ μ C Compiler μ λν΄ μμΈν μμ§ λͺ»νκΈ° λλ¬Έμ νλ¦° λΆλΆμ΄ μμ μ μμΌλ©°, μΈμ λ μ§ μ§μ λ°λλλ€. κ·Έλ¦¬κ³ Github Action κ³Ό κ΄λ ¨λ κ°λ λΆλΆμ λ°λ‘ μ€λͺ νμ§ μμ΅λλ€. μλ리μ€λ ν¬κ² Local μμκ³Ό Remote(Git Runner) μμμΌλ‘ λλ μ μμ΅λλ€. Local Local μμλΆν° μμν΄λ³΄μ£ . Local μμμμ 미리 Python μ λΉλ ν νμ Artifacts Repository μ μ λ‘λ ν©λλ€.Official Setup Python μ‘μ μ 보면 versions-manifest.json μ Python μ λ€μ΄λ°μ μ μλ URL μ΄ λͺ μλ..
λ€μ΄κ°κΈ° μμ ν΄λΉ κΈμμλ C Compiler μ λν μ§μμ νμλ‘ ν©λλ€. νμ§λ§ μ C Compiler μ λν΄ μμΈνκ² μμ§ λͺ»νκΈ° λλ¬Έμ νλ¦° λΆλΆμ΄ μμ μ μμ΅λλ€. μ§μ μ μΈμ λ μ§ νμν©λλ€ :) Github Action Marketplace μλ λ€μν μ‘μ λ€μ΄ μ‘΄μ¬ν©λλ€. κ·Έ μ€ Setup Node, Setup Go, Setup Python μ‘μ λ±μ ν΅ν΄μ νμν μΈμ΄λ ν΄μ λ¬λμ μ€μΉνκ² λ©λλ€. λ§μ½ λ¬λμμ νμ΄μ¬μ΄ νμνλ€λ©΄, Setup Python μ‘μ μ μ€νν΄μ νμ΄μ¬μ μ¬μ©ν μ μλ νκ²½μ ꡬμ±ν μ μμ΅λλ€. κ·Έλ°λ°, μμ½κ²λ Setup Python μ‘μ μ Linux x64, Windows x64, MacOS Apple Silicon(Intel ν¬ν¨) μ μ§μ..
μΏ λ²λ€ν°μ€ νκ²½μμ ARC λ₯Ό μ΄μ©νλ©΄ μ΄λ ΅μ§ μκ² λ€μν OS μμ μ€ν μ€μΌμΌλ§μ κΈ°λ°ν Runner ꡬνμ΄ κ°λ₯ν©λλ€. Karpenter μ ν¨κ»λΌλ©΄ λ ν¨μ¨μ μ΄μ£ . (Karpenter κ³Ό κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ , ARC κ° κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ ) λν EKS μμ Linux μ Windows κΈ°λ°μ λ Έλλ₯Ό μ§μν΄μ£ΌκΈ° λλ¬Έμ λμ°κΈ°λ§ νλ€λ©΄ νλ λ¨μλ‘ Runner λ₯Ό λ°°ν¬ν μ μμ΅λλ€. (EKS μμ Windows λ₯Ό νμ±ν νλ λ°©λ²μ΄ κΆκΈνλ€λ©΄ μ¬κΈ° μ°Έκ³ ) νμ§λ§ MacOS λ μκΈ°κ° λ¬λΌμ.. EKS μμ μ§μμ μν΄μ€λλ€.. κ·Έλμ λ§μ½ MacOS κΈ°λ°μ μ컀 λ Έλλ₯Ό νλ‘λΉμ λ νλ €κ³ νλ€λ©΄, μλ§ MacOS κΈ°λ°μ μΈμ€ν΄μ€λ₯Ό λμ΄ ν κ±°κΈ°μ μλμΌλ‘ EKS ν΄λ¬μ€ν°μ μ‘°μΈν΄μΌ ν κ²μ λλ€...
λ€μ΄κ°κΈ° μμ μ λ Windows λ₯Ό λ§μ΄ λ€λ€λ³΄μ§ μμκΈ° λλ¬Έμ λΆμ‘±νκ±°λ νλ¦° λΆλΆμ΄ μμ μ μμ΅λλ€! μΏ λ²λ€ν°μ€λ v1.23 λ²μ , Karpenter λ v0.31 λ²μ μ λλ€. μΏ λ²λ€ν°μ€(EKS) νκ²½μ μλμ°μ Karpenter λ₯Ό νμ±ν νλ λ°©λ²μ λν΄μ μ¬κΈ°λ₯Ό μ°Έκ³ νμΈμ. Karpenter μ λν΄ κΆκΈνλ€λ©΄ μ¬κΈ°λ₯Ό μ°Έκ³ νμΈμ. κ·ΈλΌ λ μΈ λλμ½λ~ μ°λ¦¬κ° μΏ λ²λ€ν°μ€λ₯Ό μ¬μ©νλ λ°©λ²μ λ°λ‘ μ€μΌμ€νΈλ μ΄μ μ μν¨μ΄μ£ . νλμ λ§μ€ν° νλ μΈμΌλ‘ μ¬λ¬ λ Έλμ μ¬λ¬ νλλ₯Ό μ’ λ μ½κ² κ΄λ¦¬νκΈ° μν΄μμ λλ€. Action Runner μμ μμΈλ μλμ£ . Action Runner Controller λ₯Ό μ΄μ©νλ©΄ μ½κ² μΏ λ²λ€ν°μ€ νκ²½μμ νλ λ¨μμ Runner λ°°ν¬κ° κ°λ₯ν©λλ€. 맨 μ²μ Action..
κ°λ°μ νλ€λ³΄λ©΄ νκ°μ§ λ²μ λΏλ§ μλλΌ λ€μν λ²μ μ μ§μν΄μ€μΌ ν©λλ€. μλ₯Ό λ€μ΄ νμ΄μ¬μ μ¬μ©νλ€λ©΄ 3.8, 3.9, 3.10 λ²μ λͺ¨λ μ§μν΄μ£Όμ΄μΌ νμ£ . λ²μ λΏλ§ OS λ Linux x86, arm, Window, MacOS λ± λ€μνκ² μ§μν΄μ£Όμ΄μΌ ν©λλ€. C/C++ λ‘ λ§λ€μ΄μ§ νλ‘μ νΈλ₯Ό swig λ₯Ό ν΅ν΄ νμ΄μ¬, μλ°, Go λ± λ€μν μΈμ΄κ³Ό λ€μν λ²μ μμ μ¬μ©ν μ μλ ν¨ν€μ§λ₯Ό λ§λ€μ΄μΌ νλ μ μ΄ μμ΅λλ€. C/C++ νλ‘μ νΈμ μ¬μ©λλ CMakeLists.txt(cmake) μ Github Action μ matrix λ₯Ό μ΄μ©νλ©΄ μ΄λ ΅μ§ μκ² λ€μν λ²μ μ ν¨ν€μ§λ₯Ό λ§λ€ μ μμ κ±° κ°μ΅λλ€. μ΄λ² κΈμμλ νμ΄μ¬κ³Ό Linux x86 λ§ λ€λ£¨λ©°, 3.8, 3.9, 3.10 λ²μ μ νμ΄..
C/C++ κΈ°λ°μ νλ‘μ νΈλ₯Ό λΉλνλλ° μμ΄ λ³΄ν΅ cmake μ make λ₯Ό μ΄μ©ν΄μ λΉλλ₯Ό νκ² λ©λλ€. κ°λ΅νκ² cmake λ CMakeList.txt λ₯Ό κΈ°λ°μΌλ‘ Makefile λ₯Ό λ§λ€μ΄μ£Όκ³ , make λ Makefile λ₯Ό ν΅ν΄ νλ‘μ νΈλ₯Ό λΉλν©λλ€. cmake λ λΉλλ₯Ό μν νλ‘μΈμ€μ΄κ³ , make λ μ€μ λ‘ λΉλλ₯Ό ν΄μ£Όλ νλ‘μΈμ€μΈ μ μ΄μ£ . κ·Έλ°λ° C/C++ νλ‘μ νΈλ₯Ό λΉλνλλ°, λΉλ μκ°μ΄ λλ΅ 1μκ° μ λ μλͺ¨λ©λλ€. λ무 μ€λκ±Έλ €μ.. μ§νν runner λ 2GB Memory μ μΈμ€ν΄μ€μ λλ€. λΉλ μκ°μ λ¨μΆμν€κ³ μΆμ΅λλ€. λΉλ μκ°μ λ¨μΆμν€κΈ° μν λ°©λ²μΌλ‘ κ°μ₯ λ¨Όμ λ μ€λ₯΄λ κ²μ λ°λ‘ μΊμ± μ λλ€. λ§€λ² κ°μ΄ νμΌμ λΉλνμ§ λ§κ³ , λ°λ³΅λλ λΉλ νμΌμ μΊμ±ν΄λμΌλ©΄ μκ°μ΄..
μ§λ κΈμμλ Action Controller Runner (μ΄ν ARC) λ₯Ό μ¬μ©ν λ AWS EFS λ₯Ό λ§μ΄νΈν΄μ νΉμ κ²½λ‘μ build μ νμν λ°μ΄ν°λ₯Ό μΊμ±νμ΅λλ€. κ·Όλ° λ§μ½ AWS EFS μ κ°μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ μ€ν 리μ§κ° μλ€λ©΄ μ΄λ¨κΉμ? λ€νν μΆ©λΆν μ’μ λμ± μμ΄ μμ΅λλ€. λ°λ‘ Github Action μμ μ 곡ν΄μ£Όλ Action Cache μ΄λΌλ λ μμ λλ€. Github Action μ μ¬μ©νλ€λ©΄ μλ§ μ΄λ―Έ λ€λ€ μ μμ€ μλ μκ² κ΅°μ. Action Cache λ μ’μμ 3.7k λ₯Ό λ°μ λ§νΌ λ§μ μ¬λ?μ λ°κ³ μλ μ‘μ μ€μ νλμ λλ€. λνλ¨ΌνΈλ₯Ό 보면 κ½€ μμΈνκ² μ€λͺ μ΄ λμ΄μμ΅λλ€. μμ μ½λλ μ‘΄μ¬νλ©°, κ° νμν with μ λν΄μλ μΉμ νκ² μ€λͺ ν΄μ£Όκ³ μμ΅λλ€...
μ€μ!! ARC κ° Github Official νλ‘μ νΈκ° λ¨μ λ°λΌ μλμμ 보μ¬λλ¦° ARC κ΄λ ¨ν 리μμ€λ€μ μ λΆ κ΅¬ λ²μ μ λλ€. μ¬κΈ°λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ! Action Controller Runner (μ΄ν ARC) λ νλ λ¨μ Self Hosted Runner μ λλ€. μ¦, μΏ λ²λ€ν°μ€ νκ²½μμ νλλ₯Ό Self Hosted Runner λ‘ μ§μ ν μ μκ² ν΄μ£Όλ μ€νμμ€μ£ . ARC μ λν μ 보λ μ¬κΈ°λ₯Ό νμΈν΄μ£ΌμΈμ. κ·Όλ° ARC λ₯Ό μ¬μ©νλ κ²½μ° νλ κ³ λ €ν΄μΌ ν μ¬νμ΄ μμ΅λλ€. λ°λ‘ ARC μ μν΄ λ§λ€μ΄μ§λ νλλ Github Action μ Job μ΄ μ’ λ£λ κ²½μ° μ κ±°λκ³ λ€μ μμ±λ©λλ€. λ°λΌμ HostPath λ EFS λ₯Ό μ¬μ©νμ§ μμΌλ©΄ Job μ μ€νν λ μμ±νλ Java SDK, N..