Skip to content
GitHub Actions

์•„์ด๋””์–ด๋ถ€ํ„ฐ ํ”„๋กœ๋•์…˜๊นŒ์ง€ ์›Œํฌํ”Œ๋กœ ์ž๋™ํ™”

GitHub Actions๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ œ ์„ธ๊ณ„ ์ตœ๊ณ  ์ˆ˜์ค€์˜ CI/CD๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ์†Œํ”„ํŠธ์›จ์–ด ์›Œํฌํ”Œ๋กœ๋ฅผ ์‰ฝ๊ฒŒ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ , ๋ฐฐํฌํ•˜์„ธ์š”. ์ฝ”๋“œ ๊ฒ€ํ† , ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ๋ฐ ๋ฌธ์ œ ๋ถ„๋ฅ˜ ์ž‘์—…์„ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Screenshot of a GitHub Actions workflow titled 'matrix-build-deploy.yml' displaying a pipeline with three stages: Build, Test, and Publish. The Build stage has completed successfully in 1 minute and 42 seconds. The Test stage includes builds for Linux, macOS, and Windows, all of which have also completed successfully with their respective durations. The final stage, Publish, shows that the publishing steps for Linux, macOS, and Windows are pending and waiting for approval. The background features a gradient transitioning from green to blue to turquoise.

๋ชจ๋“  GitHub ์ด๋ฒคํŠธ์—์„œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ์ž‘์—… ์ž๋™ํ™”

ํ˜ธ์ŠคํŠธ ๋Ÿฌ๋„ˆ

Linux, macOS, Windows, ARM, GPU ๋ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰ํ•˜์„ธ์š”. ์…€ํ”„ ํ˜ธ์ŠคํŠธ ๋Ÿฌ๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ๋‚˜ ์˜จํ”„๋ ˆ๋ฏธ์Šค์—์„œ ์ž์ฒด ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋งคํŠธ๋ฆญ์Šค ๋นŒ๋“œ

์—ฌ๋Ÿฌ ์šด์˜ ์ฒด์ œ์™€ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์—์„œ ๋™์‹œ์— ํ…Œ์ŠคํŠธํ•˜๋Š” ๋งคํŠธ๋ฆญ์Šค ์›Œํฌํ”Œ๋กœ๋กœ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜์„ธ์š”.

๋ชจ๋“  ์–ธ์–ด

GitHub Actions๋Š” Node.js, Python, Java, Ruby, PHP, Go, Rust, .NET ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์–ธ์–ด๋กœ ์•ฑ์„ ๋นŒ๋“œํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ , ๋ฐฐํฌํ•˜์„ธ์š”.

๋ผ์ด๋ธŒ ๋กœ๊ทธ

์ƒ‰์ƒ๊ณผ ์ด๋ชจํ‹ฐ์ฝ˜์œผ๋กœ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰ ์ƒํ™ฉ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜์„ธ์š”. ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ํŠน์ • ์ค„ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๋Š” ๋งํฌ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ CI/CD ์‹คํŒจ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

secret ์Šคํ† ์–ด ๋‚ด์žฅ

Git ํ๋ฆ„์„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ฝ”๋“œํ™”ํ•˜์—ฌ ์ˆ˜์šฉํ•˜๋Š” ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ด€ํ–‰์„ ์ž๋™ํ™”ํ•˜์„ธ์š”.

๋ฉ€ํ‹ฐ ์ปจํ…Œ์ด๋„ˆ ํ…Œ์ŠคํŠธ

์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์— docker-compose๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์›Œํฌํ”Œ๋กœ์—์„œ ์›น ์„œ๋น„์Šค์™€ ํ•ด๋‹น DB๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ด๋ฒคํŠธ์—์„œ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰

์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ, ์›น ์„œ๋น„์Šค ๋ฐฐํฌ, ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ์‹ ๊ทœ ์‚ฌ์šฉ์ž ํ™˜์˜ ์ž๋™ํ™” ๋“ฑ ๋ฌด์—‡์„ ์›ํ•˜๋“  ๊ทธ์— ๋งž๋Š” ์ž‘์—…์ด โ€‹โ€‹์žˆ์Šต๋‹ˆ๋‹ค. GitHub Packages์™€ GitHub Actions๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด GITHUB_TOKEN์œผ๋กœ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ, ๊ธ€๋กœ๋ฒŒ CDN์„ ํ†ตํ•œ ๋น ๋ฅธ ๋ฐฐํฌ, ์˜์กด์„ฑ ํ•ด๊ฒฐ์„ ํฌํ•จํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Screenshot showing the results of a successful GitHub Actions workflow. The header indicates that 'All checks have passed,' with three successful checks listed below. The checks include 'Build,' which completed successfully in 42 seconds, 'Test,' which completed in 5 minutes, and 'Code scanning / CodeQL,' which completed in 30 seconds. Each check has a corresponding 'Details' link. At the bottom, there is a green 'Merge pull request' button, indicating that the pull request is ready to be merged. The background features a gradient from green to teal.

Actions Marketplace

Screenshot of a GitHub Actions workflow file being edited. The cursor is in the 'on' section of the YAML file, with a dropdown menu showing various triggers such as push, issue_creation, new_release, workflow_dispatch, and others. The code includes steps to set up a Node.js environment and run tests. On the right side of the screen, there is a 'Marketplace' panel displaying featured actions like 'Setup Node.js environment,' 'Setup Java JDK,' 'Setup .NET Core SDK,' and 'Download a Build Artifact.' The background features a gradient from green to teal.

GitHub Actions๋Š” ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ํด๋ผ์šฐ๋“œ์— ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ , Jira์—์„œ ํ‹ฐ์ผ“์„ ๋งŒ๋“ค๊ฑฐ๋‚˜, npm์— ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œํ•˜์„ธ์š”.
  • ๊ธฐ์กด์˜ ํ‹€์—์„œ ๋ฒ—์–ด๋‚˜ ์ƒˆ๋กœ์šด ์‹œ๋„๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? GitHub์—์„œ ์ œ๊ณต๋˜๋Š” ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๋งŒ์˜ ์ž‘์—…์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. JavaScript๋กœ ์ž‘์—…์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ปจํ…Œ์ด๋„ˆ ์ž‘์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์ „์ฒด GitHub API ๋ฐ ๊ธฐํƒ€ ํผ๋ธ”๋ฆญ API์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋ฐ ์›Œํฌํ”Œ๋กœ๋ฅผ ์œ„ํ•œ ์•ˆ์ „ํ•œ ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

API์™€ ์›นํ›„ํฌ๋ฅผ ํ†ตํ•ด ์›Œํฌํ”Œ๋กœ์— ํ†ตํ•ฉ๋œ GitHub ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ์™€ ๏ฟฝ๏ฟฝํ‚ค์ง€๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์„ธ์š”. ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๊ธ€๋กœ๋ฒŒ CDN์„ ํ†ตํ•œ ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ฆ๊ธฐ์„ธ์š”.

Screenshot of a terminal window showing Docker commands to log in to GitHub's container registry (ghcr.io), tag an application image, and push the image version (1.0.0) to the repository, with a successful login and digest confirmation. The background features a gradient from green to teal.
GitHub Actions๋Š” CI/CD๋ฅผ ๋„˜์–ด ์—„์ฒญ๋‚œ ์ž ์žฌ๋ ฅ์„ ์—ด์–ด์ฃผ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ฐœ๋ฐœ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ ๋ฐฐํฌ๋ถ€ํ„ฐ GitHub API ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ƒํƒœ ๋ณด๊ณ ์„œ ์ž‘์„ฑ, ํ‘œ์ค€ CI ๋นŒ๋“œ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ž‘์—…์˜ ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ฐ„์†Œํ™”ํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.
Ralph Gommers
Ralf GommersSciPy ๋ฉ”์ธํ…Œ์ด๋„ˆ

ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” GitHub Actions ๋ฌด๋ฃŒ

GitHub๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜ ์ค‘์‹ฌ์ง€๋กœ์„œ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฌด๋ฃŒ CI/CD๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋Ÿฌ๋„ˆ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๋ฌธ์„œ ๋ณด๊ธฐ

์ž์ฒด ๋Ÿฌ๋„ˆ ํ˜ธ์ŠคํŠธ ๋˜๋Š” GitHub ํ˜ธ์ŠคํŠธ ๋Ÿฌ๋„ˆ ์‚ฌ์šฉ

์š”๊ธˆ์ œ ์„ธ๋ถ€ ์ •๋ณด์—์„œ ํฌํ•จ๋œ ์‹œ๊ฐ„(๋ถ„)์„ ํ™•์ธํ•˜๊ณ , ์•„๋ž˜ ์š”๊ธˆํ‘œ์—์„œ ๋ฌด๋ฃŒ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฌ๋„ˆ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์š”๊ธˆ ๋ณด๊ธฐ

์›Œํฌํ”Œ๋กœ ์ž๋™ํ™”์˜ ๋ฏธ๋ž˜๋Š” ๋ฐ”๋กœ ์ง€๊ธˆ

GitHub Actions ์‹œ์ž‘ํ•˜๊ธฐ