π― Goals
- gitlab-ci.yaml νμΌ κΈ°λ³Έ μ€μ μ ν΄λ³Έλ€.
- gitlab μ CI λͺ¨λΈμ κ°λ μ νμ νλ€.
- gitlab + AWS EC2 νκ²½μμμ CI μ λ΅μ μΈμλ³Έλ€.
GitLab CI Models
νλμ 리ν¬μ§ν λ¦¬κ° νλμ νμ΄νλΌμΈμ κ°λλ€.
Pipeline
리ν¬μ§ν 리μ 루νΈμ μ‘΄μ¬νλ Yaml μ€μ νμΌ
λ€λ₯Έ νμ΄νλΌμΈμ μλ¦Όμ λ³΄λΌ μ μλ€.
νλμ νμ΄νλΌμΈμ μ¬λ¬ μ€ν μ΄μ§λ₯Ό κ°μ§ μ μλ€.
Stage
μμ μ λ¨μλ‘ 'μμ°¨μ 'μΌλ‘ μ€νλλ€.
μ¬λ¬ Job μ κ°λλ€.
ex) Install, Build, Test, Deploy , Run
Job
ν μ€ν μ΄μ§ λ΄μμ μμ μ λ¨μ.
[CI μ λ΅ μ립]
λΈλμΉλ§λ€ μλ‘ λ€λ₯Έ EC2 μΈμ€ν΄μ€μ λ°°ν¬νλ€.
- master => production instance
- develop => test instance
- stage => stage (just for test)
κ° μΈμ€ν΄μ€λ§λ€ μ¬μ©νλ .env κ° λ€λ₯΄λ€. λ³΄ν΅ νκ²½λ³μ νμΌμΈ dotenv μλ λ ΈμΆλμ§ μμμΌνλ μ λ³΄κ° ν¬ν¨λμ΄μκΈ° λλ¬Έμ, repository μ μ¬λ¦¬μ§ μλλ€ => μλλ°°ν¬λ₯Ό μν΄ λ³λμ μ λ΅μ΄ νμνλ€.
[gitlab-ci.yml μ€λΉμ¬ν]
1. Intall Gitlab-Runner on Local (Optional)
GitLab Runnerλ₯Ό μλ² μΈμ€ν΄μ€κ° μλ
μ€μ λ‘ κ°λ°μ νλ λ°μ€ν¬νμ΄λ λ ΈνΈλΆμ μ€μΉνλ€.
μ΄ λ¬Έμλ³΄κ³ μ€μ€λ‘ μ€μΉλ λͺ»ν μ λλ©΄ κ°λ°μλ₯Ό μνλκ²..λ«μ§μλ?
μ€μΉ ν μ€μ νμΌμ λ³κ²½νκ³ μΆλ€λ©΄ μ΄ λ¬Έμλ₯Ό μ°Έμ‘°νμλΌ.
# config.toml νμΌμ μ€μ κ°μ λ³κ²½ν΄μ£Όλ©΄ λλ€.
$ /Users/[Username]/.gitlab-runner/config.toml
2. Create a .gitlab-ci.yml file
μΌμΌν AtoZ ꡬμ±νκΈ° μ΄λ €μ°λ gitlab μμ μ 곡νλ ν νλ¦Ώμ μ¬μ©νλλ‘ νμ.
3. AWS S3 Bucket μμ± λ° AWS Credential μ€μ
Pipeline μ’ λ£μ Deploy ν νμΌμ μμΆνμ¬ S3μ μ λ‘λν΄μΌνλ€.
S3 μ λ‘λλ₯Ό μν΄μ AWS Credential μ 보λ₯Ό Gitlab - Settings - CI/CD - Variables μμ μ€μ νμ.
- AWS_ACCESS_KEY_ID
- AWS_SECRET_KEY
- AWS_DEFAULT_REGION (Optional)
μ΄μ pipeline λ΄μμ S3 μ λ‘λκ° κ°λ₯ν΄μ‘λ€.
π Reference
'κΈ°ν > git' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Error] Jekyll μ ν΅ν κΉν λΈλ‘κ·Έ μμ±μ λ§λ μ€λ₯λ€ (0) | 2023.01.05 |
---|---|
[git] gitlab CI/CD to AWS EC2 (2) (0) | 2022.04.29 |
[git] tag (0) | 2022.03.19 |
[git] μλ‘ λ€λ₯Έ repository ν©μΉκΈ° (0) | 2022.03.14 |
[git] μ΄μ commit λ‘κ·Έ λ³κ²½ (0) | 2022.03.12 |