ν΄μΉ΄λ° μ½λ¦¬μ 2021 κΉν μ‘μ μν¬μ΅ 2021.08.02 8PM KST
Dockerλ₯Ό νμ©ν 컀μ€ν GitHub Actions λ§λ€κΈ°
GitHub Actionsλ₯Ό νμ©ν μλ Slack Message μ μ‘ Workflow λ§λ€κΈ°
/.github
βββ actions
β βββ hello-team
| βββ action.yml
| βββ main.go
| βββ Dockerfile
βββ workflows
βββ hello-team.yml
Workflowλ΄ actionμ input κ°μ Docker envλ₯Ό ν΅ν΄ GitHub Actions input variableλ‘ λ°μμ Go main codeμμ μΆλ ₯νλ actionμ λλ€.
/.github
βββ actions
β βββ random-joke
| βββ action.yml
| βββ src
| | βββ main.py
| βββ requirements.txt
| βββ Dockerfile
βββ workflows
βββ random-joke.yml
actionμ ꡬμ±νλ python main codeμμ μΈλΆ APIλ₯Ό νΈμΆν΄ json κ°μ λ°ννμ¬ λλ€νκ² λ°°μ΄ κ°μ κ³¨λΌ μΆλ ₯νλ actionμ λλ€. λν GitHub Actions μμ λ€λ₯Έ variableμ outputμΌλ‘ μμ±νμ¬ λ€λ₯Έ actionμμ λ³μ κ°μ μ¬μ¬μ©ν μ μλλ‘ κ΅¬μ±ν©λλ€.
/.github
βββ actions
β βββ issue-maker
| βββ action.yml
| βββ src
| | βββ index.js
| βββ package.json
| βββ Dockerfile
βββ workflows
βββ make-issue.yml
λ€λ₯Έ action(1.2 Random Joke Action)μμ λ°μμ¨ κ°μ νμ©ν΄, κ·Έ κ°μ GitHub Repository λ΄ Issue μμ±μΌλ‘ markdown νμμΌλ‘ λ°νν΄ μ΄λ―Έμ§λ₯Ό ν¬ν¨ν Issue κΈμ μλμΌλ‘ μμ±ν©λλ€.
GitHub Repositoryλ₯Ό μ§μ μ μΌλ‘ μ κ·Όνλ actionμ΄κΈ° λλ¬Έμ, ${{ secrets.GITHUB_TOKEN }}
μ΄ νμμ μΌλ‘ νμν©λλ€.
/.github
βββ workflows
βββ slack-message.yml
GitHub λ§μΌνλ μ΄μ€μ 곡κ°λ actionμ νμ©νμ¬, GitHub Repositoryμ Pull Requestκ° μμ±λμμ κ²½μ°, Slackμ μλμΌλ‘ λ©μμ§λ₯Ό μ μ‘ν©λλ€.
${{ secrets.SLACK_WEBHOOK_URL }}
μ slack api μ¬μ΄νΈμ μ μ ν, App κ΄λ¦¬λ₯Ό νλ λμμ Incoming Webhook URLμ νμ±ννκ² λλ©΄, Webhook URLμ΄ μμ±λ©λλ€.
μ΄λ₯Ό GitHub repositoryμ Setting > Secretsμ λ³μλ‘ κΈ°μ
ν©λλ€.
/.github
βββ workflows
βββ slack-message.yml
GitHub actionμ νμ©νλ©΄ μμ±λλ μΈμ(ex. ${{ github.repository }}
, ${{ github.author }}
)λ€μ νμ©ν΄ paylodμ λ£μ΄μ£Όμ΄ μνλ PR κ΄λ ¨ μ 보λ₯Ό λ΄μ Slack λ©μμ§λ₯Ό μ μ‘ν μ μλλ‘ μ»€μ€ν°λ§μ΄μ§ν©λλ€.
- Slack Workspace + Channel
- Slack App (slackapi) with Incoming Webhook νμ±ν