åææ¡ä»¶
ã¯ãŒã¯ãããŒãšããªã¬ãŒ ã¯ãŒã¯ãããŒã®è©³çްã«ã€ããŠã¯ããWorkflowsããåç §ããŠãã ããã
ã¯ãŒã¯ãããŒããã¯ãŒã¯ãããŒãããªã¬ãŒãã
ãªããžããªã® GITHUB_TOKEN
ã䜿ã£ãŠã¿ã¹ã¯ãå®è¡ããå ŽåãGITHUB_TOKEN
ã«ãã£ãŠããªã¬ãŒãããã€ãã³ãã§ã¯ (workflow_dispatch
ãš repository_dispatch
ãé€ããŸã)ãæ°ããã¯ãŒã¯ãããŒå®è¡ã¯äœæãããŸããã ããã«ãã£ãŠãäºæ³å€ã®ååž°çãªã¯ãŒã¯ãããŒã®å®è¡ãçããªãããã«ãªããŸãã ããšãã°ãã¯ãŒã¯ãããŒå®è¡ã§ãªããžããªã® GITHUB_TOKEN
ã䜿çšããŠã³ãŒããããã·ã¥ãããå Žåãpush
ã€ãã³ãã®çºçæã«å®è¡ããããã«æ§æãããã¯ãŒã¯ãããŒããªããžããªã«å«ãŸããŠããå Žåã§ããæ°ããã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã詳ããã¯ããã¯ãŒã¯ãããŒã§ã®èªèšŒã« GITHUB_TOKEN ã䜿çšããããã芧ãã ããã
ã¯ãŒã¯ãããŒå
ããã¯ãŒã¯ãããŒãããªã¬ãŒããå ŽåãããŒã¯ã³ãå¿
èŠãšããã€ãã³ããããªã¬ãŒãã GITHUB_TOKEN
ã®ä»£ããã«ãGitHub App ã€ã³ã¹ããŒã« ã¢ã¯ã»ã¹ ããŒã¯ã³ãŸã㯠personal access token ã䜿ããŸãã
GitHub App ã䜿ãå ŽåãGitHub App ãäœæããã·ãŒã¯ã¬ãããšããŠã¢ã㪠ID ãšãã©ã€ããŒã ããŒãæ ŒçŽããå¿ èŠããããŸãã 詳ããã¯ããGitHub Actions ã¯ãŒã¯ãããŒã§ GitHub App ã䜿çšããŠèªèšŒæžã¿ API èŠæ±ãäœæããããã芧ãã ããã personal access token ã䜿ãå Žåãpersonal access token ãäœæãããããã·ãŒã¯ã¬ãããšããŠæ ŒçŽããå¿ èŠããããŸãã personal access token ã®äœæã«ã€ããŠè©³ããã¯ããå人çšã¢ã¯ã»ã¹ ããŒã¯ã³ã管çããããã芧ãã ããã ã·ãŒã¯ã¬ããã®æ ŒçŽã«ã€ããŠè©³ããã¯ããGitHub Actions ã§ã®ã·ãŒã¯ã¬ããã®äœ¿çšããã芧ãã ããã
GitHub Actionsã®å©çšã³ã¹ããæå°åããããã«ãååž°çãããã¯æå³ããªãã¯ãŒã¯ãããŒã®å®è¡ãçããªãããã«ããŠãã ããã
ããšãã°ã次ã®ã¯ãŒã¯ãããŒã§ã¯ã(MY_TOKEN
ãšããã·ãŒã¯ã¬ãããšããŠæ ŒçŽããã) personal access token ã䜿ããGitHub CLI ãä»ããŠã€ã·ã¥ãŒã«ã©ãã«ã远å ããŸãã ã©ãã«ã®è¿œå æã«å®è¡ããããã¹ãŠã®ã¯ãŒã¯ãããŒã¯ããã®ã¹ããããå®è¡ããããšå®è¡ãããŸãã
on:
issues:
types:
- opened
jobs:
label_issue:
runs-on: ubuntu-latest
steps:
- env:
GH_TOKEN: ${{ secrets.MY_TOKEN }}
ISSUE_URL: ${{ github.event.issue.html_url }}
run: |
gh issue edit $ISSUE_URL --add-label "triage"
éã«ã次ã®ã¯ãŒã¯ãããŒã§ã¯ãã€ã·ã¥ãŒã«ã©ãã«ã远å ããããã« GITHUB_TOKEN
ã䜿çšãããŸãã ã©ãã«ã®è¿œå æã«å®è¡ãããã¯ãŒã¯ãããŒã¯ããªã¬ãŒãããŸããã
on:
issues:
types:
- opened
jobs:
label_issue:
runs-on: ubuntu-latest
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_URL: ${{ github.event.issue.html_url }}
run: |
gh issue edit $ISSUE_URL --add-label "triage"
ã€ãã³ãã䜿ã£ãŠã¯ãŒã¯ãããŒãããªã¬ãŒãã
on
ããŒã䜿ã£ãŠãã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ããæå®ããŸãã 䜿çšã§ããã€ãã³ãã«ã€ããŠè©³ããã¯ããã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãããã芧ãã ããã
åäžã®ã€ãã³ãã䜿çšãã
ããšãã°ã次㮠on
ã®å€ãæã€ã¯ãŒã¯ãããŒã¯ãã¯ãŒã¯ãããŒã®ãªããžããªå
ã®ä»»æã®ãã©ã³ãã«ããã·ã¥ãè¡ããããšãã«å®è¡ãããŸãã
on: push
è€æ°ã®ã€ãã³ãã䜿çšãã
1 ã€ã®ã€ãã³ããŸãã¯è€æ°ã®ã€ãã³ããæå®ã§ããŸãã ããšãã°ã次㮠on
ã®å€ãæã€ã¯ãŒã¯ãããŒã¯ãã¯ãŒã¯ãããŒã®ãªããžããªå
ã®ä»»æã®ãã©ã³ãã«ããã·ã¥ãè¡ããããšãããŸãã¯èª°ãããªããžããªããã©ãŒã¯ãããšãã«å®è¡ãããŸãã
on: [push, fork]
è€æ°ã®ã€ãã³ããæå®ããå Žåãã¯ãŒã¯ãããŒãããªã¬ãŒããããã«å¿ èŠãªã€ãã³ã㯠1 ã€ã ãã§ãã ã¯ãŒã¯ãããŒã®è€æ°ã®ããªã¬ãŒ ã€ãã³ããåæã«çºçããå Žåãè€æ°ã®ã¯ãŒã¯ãããŒå®è¡ãããªã¬ãŒãããŸãã
ã¢ã¯ãã£ããã£ã®çš®é¡ãšãã£ã«ã¿ãŒãè€æ°ã®ã€ãã³ããšå ±ã«äœ¿çšãã
ã¢ã¯ãã£ããã£ã®çš®é¡ãšãã£ã«ã¿ãŒã䜿ã£ãŠãã¯ãŒã¯ãããŒãå®è¡ããã¿ã€ãã³ã°ãããã«çްããå¶åŸ¡ã§ããŸãã 詳现ã«ã€ããŠã¯ããã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ã䜿çšããããšããã£ã«ã¿ãŒã䜿çšããããåç
§ããŠãã ããã ã€ãã³ãã«ã¢ã¯ãã£ããã£ã®çš®é¡ããã£ã«ã¿ãŒãæå®ããã¯ãŒã¯ãããŒãè€æ°ã®ã€ãã³ãã§ããªã¬ãŒãããå Žåãåã€ãã³ããåå¥ã«æ§æããå¿
èŠããããŸãã æ§æããªãã€ãã³ããå«ãããã¹ãŠã®ã€ãã³ãã«ã¯ã³ãã³ (:
) ã远å ããå¿
èŠããããŸãã
ããšãã°ã以äžã® on
ã®å€ãæã€ã¯ãŒã¯ãããŒã¯ã次ã®ãããªå Žåã«å®è¡ãããŸãã
- ã©ãã«ãäœæããããšã
- ãªããžããªå
ã®
main
ãã©ã³ãã«ããã·ã¥ããããšã - GitHub Pages 察å¿ã®ãã©ã³ãã«ããã·ã¥ããããšã
on:
label:
types:
- created
push:
branches:
- main
page_build:
ã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ã䜿çšãã
äžéšã®ã€ãã³ãã«ã¯ãã¯ãŒã¯ãããŒãå®è¡ããã¿ã€ãã³ã°ããã现ããå¶åŸ¡ã§ããã¢ã¯ãã£ããã£ã®çš®é¡ããããŸãã on.<event_name>.types
ã䜿çšããŠãã¯ãŒã¯ãããŒå®è¡ãããªã¬ãŒããã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ãå®çŸ©ããŸãã
ããšãã°ãissue_comment
ã€ãã³ãã«ã¯ãcreated
ãedited
ãdeleted
ã®ã¢ã¯ãã£ããã£ã®çš®é¡ããããŸãã label
ã€ãã³ãã§ã¯ãŒã¯ãããŒãããªã¬ãŒãããå Žåãã©ãã«ãäœæãç·šéããŸãã¯åé€ããããã³ã«ã¯ãŒã¯ãããŒãå®è¡ãããŸãã label
ã€ãã³ãã« created
ã¢ã¯ãã£ããã£ã®çš®é¡ãæå®ãããšãã¯ãŒã¯ãããŒã¯ã©ãã«ã®äœææã«å®è¡ãããŸãããã©ãã«ã®ç·šéãŸãã¯å逿ã«ã¯å®è¡ãããŸããã
on:
label:
types:
- created
è€æ°ã®ã¢ã¯ãã£ããã£ã®çš®é¡ãæå®ããå Žåãã¯ãŒã¯ãããŒãããªã¬ãŒããããã«çºçããå¿ èŠãããã®ã¯ããããã®ã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ã®ãã¡ã® 1 ã€ã ãã§ãã ã¯ãŒã¯ãããŒã®è€æ°ã®ããªã¬ãŒ ã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ãåæã«çºçããå Žåãè€æ°ã®ã¯ãŒã¯ãããŒå®è¡ãããªã¬ãŒãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãIssue ããªãŒãã³ãããå ŽåãŸãã¯ã©ãã«ä»ããããå Žåã«ããªã¬ãŒãããŸãã 2 ã€ã®ã©ãã«ãæã€ Issue ããªãŒãã³ããããšã3 ã€ã®ã¯ãŒã¯ãããŒå®è¡ (1 ã€ã¯ Issue ããªãŒãã³ãããã€ãã³ãçšã2 ã€ã¯ Issue ã®ã©ãã«ãä»ããã€ãã³ãçš) ãéå§ãããŸãã
on:
issues:
types:
- opened
- labeled
åã€ãã³ããšãã®ã¢ã¯ãã£ããã£ã®çš®é¡ã®è©³çްã«ã€ããŠã¯ããã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãããåç §ããŠãã ããã
ãã£ã«ã¿ãŒã䜿çšãã
äžéšã®ã€ãã³ãã«ã¯ãã¯ãŒã¯ãããŒãå®è¡ããã¿ã€ãã³ã°ããã现ããå¶åŸ¡ã§ãããã£ã«ã¿ãŒããããŸãã
ããšãã°ãpush
ã€ãã³ãã® branches
ãã£ã«ã¿ãŒã§ã¯ãããã·ã¥ãçºçãããšãã§ã¯ãªããbranches
ãã£ã«ã¿ãŒãšåããã©ã³ãã«å¯ŸããŠããã·ã¥ãçºçãããšãã®ã¿ãã¯ãŒã¯ãããŒãå®è¡ã§ããŸãã
on:
push:
branches:
- main
- 'releases/**'
ãã£ã«ã¿ãŒã䜿çšã㊠pull request ã€ãã³ãã«å¯ŸããŠç¹å®ã®ãã©ã³ããã¿ãŒã²ããã«ãã
pull_request
ã€ãã³ããš pull_request_target
ã€ãã³ãã䜿çšããå Žåã¯ãç¹å®ã®ãã©ã³ãã察象ãšãã pull request ã«å¯ŸããŠã®ã¿å®è¡ããããã«ã¯ãŒã¯ãããŒãæ§æã§ããŸãã
ãã©ã³ãåãã¿ãŒã³ãå
å«ããå ŽåããŸãã¯ãã©ã³ãåãã¿ãŒã³ã®å
å«ãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãbranches
ãã£ã«ã¿ãŒã䜿çšããŸãã ãã©ã³ãåãã¿ãŒã³ã®é€å€ã®ã¿ãè¡ãå Žåã¯ãbranches-ignore
ãã£ã«ã¿ãŒã䜿çšããŸãã branches
ãš branches-ignore
ã®ãã£ã«ã¿ãŒã®äž¡æ¹ãã¯ãŒã¯ãããŒå
ã®åãã€ãã³ãã§äœ¿ãããšã¯ã§ããŸããã
branches
/branches-ignore
ãš paths
/paths-ignore
ã®äž¡æ¹ãå®çŸ©ãããšãã¯ãŒã¯ãããŒã¯äž¡æ¹ã®ãã£ã«ã¿ãŒãæºããããå Žåã«ã®ã¿å®è¡ãããŸãã
branches
ãš branches-ignore
ã®ããŒã¯ãŒãã¯ãè€æ°ã®ãã©ã³ãåã«äžèŽããæå (*
ã**
ã+
ã?
ã!
ãªã©) ã䜿çšãã glob ãã¿ãŒã³ãåãå
¥ããŸãã ååã«ãããã®æåã®ãããããå«ãŸããŠããããªãã©ã«ã®äžèŽãå¿
èŠãªå Žåã¯ã\
ã§ãããã®åç¹æ®æåããšã¹ã±ãŒãããå¿
èŠããããŸãã glob ãã¿ãŒã³ã®è©³çްã«ã€ããŠã¯ãGitHub Actionsãã®ã¯ãŒã¯ãããŒæ§æ ãåç
§ããŠãã ããã
äŸ: ãã©ã³ãã®å å«
branches
ã§å®çŸ©ãããŠãããã¿ãŒã³ã¯ãGit ref ã®ååã«å¯ŸããŠè©äŸ¡ãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãpull request ã®å¯Ÿè±¡ãšãªã pull_request
ã€ãã³ããçºçãããã³ã«å®è¡ãããŸãã
main
ãšããååã®ãã©ã³ã (refs/heads/main
)mona/octocat
ãšããååã®ãã©ã³ã (refs/heads/mona/octocat
)releases/10
ã®ããã«ååãreleases/
ã§å§ãŸããã©ã³ã (refs/heads/releases/10
)
on:
pull_request:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
ãã©ã³ã ãã£ã«ã¿ãŒããã¹ ãã£ã«ã¿ãŒããŸã㯠ã³ããã ã¡ãã»ãŒãžã®ããã«ã¯ãŒã¯ãããŒãã¹ããããããå Žåããã®ã¯ãŒã¯ãããŒã«é¢é£ä»ããããŠãããã§ãã¯ã¯ "ä¿çäž" ç¶æ ã®ãŸãŸã«ãªããŸãã ãããã®ãã§ãã¯ãæåãããå¿ èŠããã pull request ã¯ãããŒãžãçŠæ¢ãããŸãã
äŸ: ãã©ã³ãã®é€å€
ãã¿ãŒã³ã branches-ignore
ãã¿ãŒã³ãšäžèŽããå Žåãã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã branches-ignore
ã§å®çŸ©ãããŠãããã¿ãŒã³ã¯ãGit ref ã®ååã«å¯ŸããŠè©äŸ¡ãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãpull request ã®å¯Ÿè±¡ãšãªããªãéããpull_request
ã€ãã³ããçºçãããã³ã«å®è¡ãããŸãã
mona/octocat
ãšããååã®ãã©ã³ã (refs/heads/mona/octocat
)- ååã
releases/beta/3-alpha
ã®ããã«releases/**-alpha
ãšäžèŽãã ãã©ã³ã (refs/heads/releases/beta/3-alpha
)
on:
pull_request:
# Sequence of patterns matched against refs/heads
branches-ignore:
- 'mona/octocat'
- 'releases/**-alpha'
äŸ: ãã©ã³ãã®å å«ããã³é€å€
1 ã€ã®ã¯ãŒã¯ãããŒã§åãã€ãã³ãã®ãã£ã«ã¿ãŒåŠçãããããã« branches
ãš branches-ignore
ã䜿çšããããšã¯ã§ããŸããã 1 ã€ã®ã€ãã³ãã«å¯ŸããŠåå²ãã¿ãŒã³ã®é©çšãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãbranches
ãã£ã«ã¿ãŒãš !
æåã䜿çšããŠãé€å€ããåå²ãæå®ããŸãã
!
æåãå«ããã©ã³ããå®çŸ©ããå Žåã¯ã!
æåãå«ãŸãªããã©ã³ãã 1 ã€ä»¥äžå®çŸ©ããå¿
èŠããããŸãã ãã©ã³ãã®é€å€ã®ã¿ãè¡ãããå Žåã¯ã代ããã« branches-ignore
ã䜿çšããŸãã
ãã¿ãŒã³ãå®çŸ©ããé åºã«ãããçµæã«éããçããŸãã
- è¯å®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«åŠå®ã®ãããã³ã° ãã¿ãŒã³ (
!
ã®ãã¬ãã£ãã¯ã¹ãä»ã) ãå®çŸ©ãããšãGit ref ãé€å€ãããŸãã - åŠå®ã®ãããã³ã°ãã¿ãŒã³ã®åŸã«è¯å®ã®ãããã³ã°ãã¿ãŒã³ãå®çŸ©ãããšãGit ref ãåã³å«ããŸãã
次ã®ã¯ãŒã¯ãããŒã¯ãåŠå®ã®ãã¿ãŒã³ !releases/**-alpha
ãè¯å®ã®ãã¿ãŒã³ã®åŸã«ç¶ããããreleases/10
ãŸã㯠releases/beta/mona
ã察象ãšãã pull request ã® pull_request
ã€ãã³ãã§å®è¡ãããŸãããreleases/10-alpha
ãŸã㯠releases/beta/3-alpha
ã察象ãšãã pull request ã§ã¯å®è¡ãããŸããã
on:
pull_request:
branches:
- 'releases/**'
- '!releases/**-alpha'
ãã£ã«ã¿ãŒã䜿çšããŠããã·ã¥ ã€ãã³ãã«å¯ŸããŠç¹å®ã®ãã©ã³ããŸãã¯ã¿ã°ãã¿ãŒã²ããã«ãã
push
ã€ãã³ãã䜿çšããå Žåã¯ãç¹å®ã®ãã©ã³ããŸãã¯ã¿ã°ã§å®è¡ããã¯ãŒã¯ãããŒãæ§æã§ããŸãã
ãã©ã³ãåãã¿ãŒã³ãå«ããå ŽåããŸãã¯ãã©ã³ãåãã¿ãŒã³ãå«ãã/é€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãbranches
ãã£ã«ã¿ãŒã䜿çšããŸãã ãã©ã³ãåãã¿ãŒã³ã®é€å€ã®ã¿ãè¡ãå Žåã¯ãbranches-ignore
ãã£ã«ã¿ãŒã䜿çšããŸãã branches
ãš branches-ignore
ã®ãã£ã«ã¿ãŒã®äž¡æ¹ãã¯ãŒã¯ãããŒå
ã®åãã€ãã³ãã§äœ¿ãããšã¯ã§ããŸããã
ã¿ã°åãã¿ãŒã³ãå«ããå ŽåããŸãã¯ã¿ã°åãã¿ãŒã³ãå«ãã/é€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãtags
ãã£ã«ã¿ãŒã䜿çšããŸãã ã¿ã°åãã¿ãŒã³ã®é€å€ã®ã¿ãè¡ãå Žåã¯ãtags-ignore
ãã£ã«ã¿ãŒã䜿çšããŸãã tags
ãš tags-ignore
ã®ãã£ã«ã¿ãŒã®äž¡æ¹ãã¯ãŒã¯ãããŒå
ã®åãã€ãã³ãã§äœ¿ãããšã¯ã§ããŸããã
tags
/tags-ignore
ã®ã¿ããŸã㯠branches
/branches-ignore
ã®ã¿ãå®çŸ©ããå Žåãå®çŸ©ãããŠããªã Git ref ã«åœ±é¿ãäžããã€ãã³ãã«å¯ŸããŠã¯ãŒã¯ãããŒã¯å®è¡ãããŸãããtags
/tags-ignore
ã branches
/branches-ignore
ãå®çŸ©ããŠããªãå Žåãã¯ãŒã¯ãããŒã¯ãã©ã³ããŸãã¯ã¿ã°ã«åœ±é¿ãäžããã€ãã³ãã«å¯ŸããŠå®è¡ãããŸãã branches
/branches-ignore
ãš paths
/paths-ignore
ã®äž¡æ¹ãå®çŸ©ãããšãã¯ãŒã¯ãããŒã¯äž¡æ¹ã®ãã£ã«ã¿ãŒãæºããããå Žåã«ã®ã¿å®è¡ãããŸãã
branches
ãbranches-ignore
ãtags
ãããã³ tags-ignore
ã®ããŒã¯ãŒãã¯ãè€æ°ã®ãã©ã³ããŸãã¯ã¿ã°åã«äžèŽããæå (*
ã**
ã+
ã?
ã!
ãªã©) ã䜿çšãã glob ãã¿ãŒã³ã蚱容ããŸãã ååã«ãããã®æåã®ãããããå«ãŸããŠããããªãã©ã«ã®äžèŽãå¿
èŠãªå Žåã¯ã\
ã§ãããã®åç¹æ®æåã_ãšã¹ã±ãŒã_ããå¿
èŠããããŸãã glob ãã¿ãŒã³ã®è©³çްã«ã€ããŠã¯ãGitHub Actionsãã®ã¯ãŒã¯ãããŒæ§æ ãåç
§ããŠãã ããã
ãã©ã³ããšã¿ã°ãå«ããäŸ
branches
ãš tags
ã§å®çŸ©ãããŠãããã¿ãŒã³ã¯ãGit ref ã®ååã«å¯ŸããŠè©äŸ¡ãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãpush
ã€ãã³ããçºçãããã³ã«å®è¡ãããŸãã
main
ãšããååã®ãã©ã³ã (refs/heads/main
)mona/octocat
ãšããååã®ãã©ã³ã (refs/heads/mona/octocat
)releases/10
ã®ããã«ååãreleases/
ã§å§ãŸããã©ã³ã (refs/heads/releases/10
)v2
ãšããååã®ã¿ã° (refs/tags/v2
)v1.9.1
ã®ããã«ååãv1.
ã§å§ãŸãã¿ã° (refs/tags/v1.9.1
)
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
# Sequence of patterns matched against refs/tags
tags:
- v2
- v1.*
ãã©ã³ããã¿ã°ãé€å€ããäŸ
ãã¿ãŒã³ã branches-ignore
ãŸã㯠tags-ignore
ãã¿ãŒã³ãšäžèŽããå Žåãã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã branches
ãš tags
ã§å®çŸ©ãããŠãããã¿ãŒã³ã¯ãGit ref ã®ååã«å¯ŸããŠè©äŸ¡ãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãpush
ã€ãã³ãããªãéããpush
ã€ãã³ããçºçãããã³ã«å®è¡ãããŸãã
mona/octocat
ãšããååã®ãã©ã³ã (refs/heads/mona/octocat
)releases/beta/3-alpha
ã®ããã«ååãreleases/**-alpha
ãšäžèŽãã ãã©ã³ã (refs/heads/releases/beta/3-alpha
)v2
ãšããååã®ã¿ã° (refs/tags/v2
)v1.9
ã®ããã«ååãv1.
ã§å§ãŸãã¿ã° (refs/tags/v1.9
)
on:
push:
# Sequence of patterns matched against refs/heads
branches-ignore:
- 'mona/octocat'
- 'releases/**-alpha'
# Sequence of patterns matched against refs/tags
tags-ignore:
- v2
- v1.*
ãã©ã³ããã¿ã°ãå«ãããé€å€ãããããäŸ
1 ã€ã®ã¯ãŒã¯ãããŒã§åãã€ãã³ãããã£ã«ã¿ãŒããããã« branches
ãš branches-ignore
ã䜿çšããããšã¯ã§ããŸããã åæ§ã«ã1 ã€ã®ã¯ãŒã¯ãããŒã§åãã€ãã³ãããã£ã«ã¿ãŒããããã« tags
ãš tags-ignore
ã䜿çšããããšã¯ã§ããŸããã 1 ã€ã®ã€ãã³ãã«å¯ŸããŠãã©ã³ããŸãã¯ã¿ã° ãã¿ãŒã³ãå«ãã/é€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãbranches
ãŸã㯠tags
ãã£ã«ã¿ãŒãš !
æåã䜿çšããŠãé€å€ãããã©ã³ããŸãã¯ã¿ã°ãæå®ããŸãã
!
æåãå«ããã©ã³ããå®çŸ©ããå Žåã¯ã!
æåãå«ãŸãªããã©ã³ãã 1 ã€ä»¥äžå®çŸ©ããå¿
èŠããããŸãã ãã©ã³ãã®é€å€ã®ã¿ãè¡ãããå Žåã¯ã代ããã« branches-ignore
ã䜿çšããŸãã åæ§ã«ã!
æåãå«ãã¿ã°ãå®çŸ©ããå Žåã¯ã!
æåãå«ãŸãªãã¿ã°ã 1 ã€ä»¥äžå®çŸ©ããå¿
èŠããããŸãã ã¿ã°ã®é€å€ã®ã¿ãè¡ãããå Žåã¯ã代ããã« tags-ignore
ã䜿çšããŸãã
ãã¿ãŒã³ãå®çŸ©ããé åºã«ãããçµæã«éããçããŸãã
- è¯å®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«åŠå®ã®ãããã³ã° ãã¿ãŒã³ (
!
ã®ãã¬ãã£ãã¯ã¹ãä»ã) ãå®çŸ©ãããšãGit ref ãé€å€ãããŸãã - åŠå®ã®ãããã³ã°ãã¿ãŒã³ã®åŸã«è¯å®ã®ãããã³ã°ãã¿ãŒã³ãå®çŸ©ãããšãGit ref ãåã³å«ããŸãã
次ã®ã¯ãŒã¯ãããŒã¯ãåŠå®ãã¿ãŒã³ !releases/**-alpha
ãè¯å®ãã¿ãŒã³ã«åŸããããreleases/10
ãŸã㯠releases/beta/mona
ãžã®ããã·ã¥ã§å®è¡ãããreleases/10-alpha
ãŸã㯠releases/beta/3-alpha
ã§ã¯å®è¡ãããŸããã
on:
push:
branches:
- 'releases/**'
- '!releases/**-alpha'
ãã£ã«ã¿ãŒã䜿çšã㊠pull request ãŸãã¯ããã·ã¥ ã€ãã³ãã«å¯ŸããŠç¹å®ã®ãã¹ãã¿ãŒã²ããã«ãã
push
ãš pull_request
ã®ã€ãã³ãã䜿çšãããšã倿Žããããã¡ã€ã« ãã¹ã«åºã¥ããŠå®è¡ããã¯ãŒã¯ãããŒãæ§æã§ããŸãã ã¿ã°ã®ããã·ã¥ã«å¯ŸããŠããã¹ã®ãã£ã«ã¿ãŒã¯è©äŸ¡ãããŸããã
ãã¡ã€ã« ãã¹ ãã¿ãŒã³ãå
å«ããå ŽåããŸãã¯ãã¡ã€ã« ãã¹ ãã¿ãŒã³ã®å
å«ãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãpaths
ãã£ã«ã¿ãŒã䜿çšããŸãã ãã¡ã€ã« ãã¹ ãã¿ãŒã³ã®é€å€ã®ã¿ãè¡ãå Žåã¯ãpaths-ignore
ãã£ã«ã¿ãŒã䜿çšããŸãã paths
ãš paths-ignore
ã®ãã£ã«ã¿ãŒã®äž¡æ¹ãã¯ãŒã¯ãããŒå
ã®åãã€ãã³ãã§äœ¿ãããšã¯ã§ããŸããã 1 ã€ã®ã€ãã³ãã«å¯ŸããŠãã¹ ãã¿ãŒã³ã®å
å«ãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãé€å€ãããã¹ã瀺ãããã«!
æåãæ¥é èŸã«ããpaths
ãã£ã«ã¿ã䜿çšããŸãã
ã¡ã¢
paths
ãã¿ãŒã³ãå®çŸ©ããé åºã«ãããçµæã«éããçããŸã:
- è¯å®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«åŠå®ã®ãããã³ã° ãã¿ãŒã³ïŒ
!
ã®ãã¬ãã£ãã¯ã¹ãä»ãïŒ ãå®çŸ©ãããšããã¹ãé€å€ããŸãã - åŠå®ã®ãããã³ã°ãã¿ãŒã³ã®åŸã«è¯å®ã®ãããã³ã°ãã¿ãŒã³ãå®çŸ©ãããšããã¹ãåã³å«ããŸãã
branches
/branches-ignore
ãš paths
/paths-ignore
ã®äž¡æ¹ãå®çŸ©ãããšãã¯ãŒã¯ãããŒã¯äž¡æ¹ã®ãã£ã«ã¿ãŒãæºããããå Žåã«ã®ã¿å®è¡ãããŸãã
paths
ãš paths-ignore
ã®ããŒã¯ãŒãã¯ãè€æ°ã®ãã¹åãšäžèŽããããã« *
ãš **
ã®ã¯ã€ã«ãã«ãŒãæåã䜿çšãã glob ãã¿ãŒã³ãåãå
¥ããŸãã 詳现ã«ã€ããŠã¯ããGitHub Actionsãã®ã¯ãŒã¯ãããŒæ§æããåç
§ããŠãã ããã
äŸ: ãã¹ã®å å«
paths
ãã£ã«ã¿ãŒã«ãã¿ãŒã³ã«ããããããã¹ã 1 ã€ã§ãããã°ãã¯ãŒã¯ãããŒã¯å®è¡ãããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãJavaScript ãã¡ã€ã« (.js
) ãããã·ã¥ãããã³ã«å®è¡ãããŸãã
on:
push:
paths:
- '**.js'
ãã¹ ãã£ã«ã¿ãŒããã©ã³ã ãã£ã«ã¿ãŒããŸãã¯ã³ããã ã¡ãã»ãŒãžã®ããã«ã¯ãŒã¯ãããŒãã¹ããããããå Žåããã®ã¯ãŒã¯ãããŒã«é¢é£ä»ããããŠãããã§ãã¯ã¯ "ä¿çäž" ç¶æ ã®ãŸãŸã«ãªããŸãã ãããã®ãã§ãã¯ãæåãããå¿ èŠããã pull request ã¯ãããŒãžãçŠæ¢ãããŸãã
äŸ: ãã¹ã®é€å€
ãã¹ãŠã®ãã¹åã paths-ignore
ã®ãã¿ãŒã³ãšäžèŽããå Žåãã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã ãã¹åã paths-ignore
ã®ãã¿ãŒã³ãšäžèŽããªãå Žåã¯ãäžéšã®ãã¹åããã¿ãŒã³ãšäžèŽããå Žåã§ããã¯ãŒã¯ãããŒãå®è¡ãããŸãã
以äžã®ãã¹ã®ãã£ã«ã¿ãŒãæã€ã¯ãŒã¯ãããŒã¯ããªããžããªã®ã«ãŒãã«ãã docs
ãã£ã¬ã¯ããªå€ã®ãã¡ã€ã«ãå°ãªããšã 1 ã€å«ã push
ã€ãã³ãã§ã®ã¿å®è¡ãããŸãã
on:
push:
paths-ignore:
- 'docs/**'
äŸ: ãã¹ã®å å«ããã³é€å€
1 ã€ã®ã¯ãŒã¯ãããŒã§åãã€ãã³ãã®ãã£ã«ã¿ãŒåŠçãããããã« paths
ãš paths-ignore
ã䜿çšããããšã¯ã§ããŸããã 1 ã€ã®ã€ãã³ãã«å¯ŸããŠãã¹ ãã¿ãŒã³ã®å
å«ãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãé€å€ãããã¹ã瀺ãããã«!
æåãæ¥é èŸã«ããpaths
ãã£ã«ã¿ã䜿çšããŸãã
!
æåãå«ããã¹ãå®çŸ©ããå Žåã¯ã!
æåãå«ãŸãªããã¹ã 1 ã€ä»¥äžå®çŸ©ããå¿
èŠããããŸãã ãã¹ã®é€å€ã®ã¿ãè¡ãããå Žåã¯ã代ããã« paths-ignore
ã䜿çšããŸãã
paths
ãã¿ãŒã³ãå®çŸ©ããé åºã«ãããçµæã«éããçããŸã:
- è¯å®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«åŠå®ã®ãããã³ã° ãã¿ãŒã³ïŒ
!
ã®ãã¬ãã£ãã¯ã¹ãä»ãïŒ ãå®çŸ©ãããšããã¹ãé€å€ããŸãã - åŠå®ã®ãããã³ã°ãã¿ãŒã³ã®åŸã«è¯å®ã®ãããã³ã°ãã¿ãŒã³ãå®çŸ©ãããšããã¹ãåã³å«ããŸãã
ãã¡ã€ã«ã sub-project/docs
ãã£ã¬ã¯ããªã«ååšããªãéããpush
ã€ãã³ãã sub-project
ãã£ã¬ã¯ããªãŸãã¯ãã®ãµããã£ã¬ã¯ããªã®ãã¡ã€ã«ãå«ãå Žåã¯ããã®äŸã¯ãã€ã§ãå®è¡ãããŸãã ããšãã°ãsub-project/index.js
ãŸã㯠sub-project/src/index.js
ã倿Žããããã·ã¥ã¯ã¯ãŒã¯ãããŒã®å®è¡ãããªã¬ãŒããŸãããsub-project/docs/readme.md
ã®ã¿ã倿Žããããã·ã¥ã¯ã¯ãŒã¯ãããŒã®å®è¡ãããªã¬ãŒããŸããã
on:
push:
paths:
- 'sub-project/**'
- '!sub-project/docs/**'
Git diffã®æ¯èŒ
ã¡ã¢
1,000 以äžã®ã³ããããããã·ã¥ããå Žåãããã㯠GitHub ãã¿ã€ã ã¢ãŠãã®ããã« diff ãçæã§ããªãå Žåããã®ã¯ãŒã¯ãããŒã¯åžžã«å®è¡ãããŸãã
ãã£ã«ã¿ãŒã¯ã倿Žããããã¡ã€ã«ãè©äŸ¡ããpaths-ignore
ãŸã㯠paths
ã®ãªã¹ãã«å¯ŸããŠãã¡ã€ã«ãå®è¡ããããšã§ãã¯ãŒã¯ãããŒãå®è¡ãã¹ãã倿ããŸãã ãã¡ã€ã«ã倿ŽãããŠããªãå Žåãã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã
GitHubã¯ããã·ã¥ã«å¯ŸããŠã¯ããŒãããdiffãPull Requestã«å¯ŸããŠã¯ã¹ãªãŒãããdiffã䜿ã£ãŠå€æŽããããã¡ã€ã«ã®ãªã¹ããçæããŸãã
- pull request: ã¹ãªãŒããã diff ã¯ãããã㯠ãã©ã³ãã®ææ°ããŒãžã§ã³ãšããã㯠ãã©ã³ããããŒã¹ ãã©ã³ããšæåŸã«åæãããã³ããããšã®æ¯èŒã§ãã
- æ¢åã®ãã©ã³ããžã®ããã·ã¥: ããŒããã diff ã¯ãããã SHA ãšããŒã¹ SHA ãäºãã«çŽæ¥æ¯èŒããŸãã
- æ°ãããã©ã³ããžã®ããã·ã¥: ããã·ã¥ãããæãæ·±ãã³ãããã®å ç¥ã®èŠªã«å¯ŸããããŒããã diff ã§ãã
ã¡ã¢
diff 㯠300 åã®ãã¡ã€ã«ã«å¶éãããŸãã ãã£ã«ã¿ãŒã«ãã£ãŠè¿ãããæåã® 300 åã®ãã¡ã€ã«ã«äžèŽããªããã¡ã€ã«ã倿Žãããå Žåãã¯ãŒã¯ãããŒã¯å®è¡ãããŸããã ã¯ãŒã¯ãããŒãèªåçã«å®è¡ãããããã«ãããå ·äœçãªãã£ã«ã¿ãŒãäœæããå¿ èŠãããå ŽåããããŸãã
詳ããã¯ãããã«ãªã¯ãšã¹ãäžã§ã®ãã©ã³ãã®æ¯èŒã«ã€ããŠããã芧ãã ããã
ãã£ã«ã¿ãŒã䜿çšããŠã¯ãŒã¯ãããŒå®è¡ã€ãã³ãã«å¯ŸããŠç¹å®ã®ãã©ã³ããã¿ãŒã²ããã«ãã
workflow_run
ã€ãã³ãã䜿çšããå Žåã¯ãã¯ãŒã¯ãããŒãããªã¬ãŒããããã«ããªã¬ãŒããã¯ãŒã¯ãããŒã皌åããå¿
èŠããããã©ã³ããæå®ã§ããŸãã
branches
ãã£ã«ã¿ãŒãš branches-ignore
ãã£ã«ã¿ãŒã¯ãè€æ°ã®ãã©ã³ãåã«äžèŽããæå (*
ã**
ã+
ã?
ãªã©) ã䜿çšãã glob ãã¿ãŒã³ãåãå
¥ããŸãã!
ååã«ãããã®æåã®ãããããå«ãŸããŠããããªãã©ã«ã®äžèŽãå¿
èŠãªå Žåã¯ã\
ã§ãããã®åç¹æ®æåã_ãšã¹ã±ãŒã_ããå¿
èŠããããŸãã glob ãã¿ãŒã³ã®è©³çްã«ã€ããŠã¯ãGitHub Actionsãã®ã¯ãŒã¯ãããŒæ§æ ãåç
§ããŠãã ããã
ããšãã°ã次ã®ããªã¬ãŒãæã€ã¯ãŒã¯ãããŒã¯ãååã releases/
ã§å§ãŸããã©ã³ãã§ Build
ãšããååã®ã¯ãŒã¯ãããŒã皌åããŠããå Žåã«ã®ã¿å®è¡ãããŸãã
on:
workflow_run:
workflows: ["Build"]
types: [requested]
branches:
- 'releases/**'
次ã®ããªã¬ãŒãæã€ã¯ãŒã¯ãããŒã¯ãååã canary
ã§ãªããã©ã³ãã§ Build
ãšããååã®ã¯ãŒã¯ãããŒã皌åããŠããå Žåã«ã®ã¿å®è¡ãããŸãã
on:
workflow_run:
workflows: ["Build"]
types: [requested]
branches-ignore:
- "canary"
branches
ãš branches-ignore
ã®ãã£ã«ã¿ãŒã®äž¡æ¹ãã¯ãŒã¯ãããŒå
ã®åãã€ãã³ãã§äœ¿ãããšã¯ã§ããŸããã 1 ã€ã®ã€ãã³ãã«å¯ŸããŠåå²ãã¿ãŒã³ã®é©çšãšé€å€ã®äž¡æ¹ãè¡ãå Žåã¯ãbranches
ãã£ã«ã¿ãŒãš !
æåã䜿çšããŠãé€å€ããåå²ãæå®ããŸãã
ãã¿ãŒã³ãå®çŸ©ããé åºã«ãããçµæã«éããçããŸãã
- è¯å®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«åŠå®ã®ãããã³ã° ãã¿ãŒã³ïŒ
!
ã®ãã¬ãã£ãã¯ã¹ãä»ãïŒ ãå®çŸ©ãããšããã©ã³ããé€å€ããŸãã - åŠå®ã®ãããã³ã° ãã¿ãŒã³ã®åŸã«è¯å®ã®ãããã³ã° ãã¿ãŒã³ãå®çŸ©ãããšããã©ã³ããåã³å«ããŸãã
ããšãã°ã次ã®ããªã¬ãŒãæã€ã¯ãŒã¯ãããŒã¯ãååã releases/10
ãŸã㯠releases/beta/mona
ã§å§ãŸããã©ã³ãã§ Build
ãšããååã®ã¯ãŒã¯ãããŒã皌åããŠããå Žåã«ã®ã¿å®è¡ãããŸãããreleases/10-alpha
ãreleases/beta/3-alpha
ãŸã㯠main
ãšããååã®ãã©ã³ãã§ã¯å®è¡ãããŸããã
on:
workflow_run:
workflows: ["Build"]
types: [requested]
branches:
- 'releases/**'
- '!releases/**-alpha'
æåã§ããªã¬ãŒãããã¯ãŒã¯ãããŒã®å ¥åãå®çŸ©ãã
workflow_dispatch
ã€ãã³ãã䜿çšãããšãå¿
èŠã«å¿ããŠã¯ãŒã¯ãããŒã«æž¡ãããå
¥åãæå®ã§ããŸãã
ãã®ããªã¬ãŒã¯ãã¯ãŒã¯ãã㌠ãã¡ã€ã«ãæ¢å®ã®ãã©ã³ãã«ããå Žåã«éãã€ãã³ããåä¿¡ããŸãã
ããªã¬ãŒãããã¯ãŒã¯ãããŒã¯ãinputs
ã³ã³ããã¹ãå
ã®å
¥åãåãåããŸãã 詳现ã«ã€ããŠã¯ããã³ã³ããã¹ãããåç
§ããŠãã ããã
ã¡ã¢
- ã¯ãŒã¯ãããŒã¯ã
github.event.inputs
ã³ã³ããã¹ãå ã®å ¥åãåãåããŸããinputs
ã³ã³ããã¹ããšgithub.event.inputs
ã³ã³ããã¹ãã®æ å ±ã§ãããinputs
ã³ã³ããã¹ãã§ã¯ããŒã«å€ãæååã«å€æããããããŒã«å€ãšããŠä¿æãããŸããchoice
åã¯æååã«è§£æ±ºããã1 ã€ã®éžæå¯èœãªãªãã·ã§ã³ã§ãã inputs
ã®æäžäœã¬ãã«ã®ããããã£ã®æå€§æ°ã¯ 10 ã§ããinputs
ã®ãã€ããŒãã®æå€§æ°ã¯ 65,535 æåã§ãã
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
print_tags:
description: 'True to print to STDOUT'
required: true
type: boolean
tags:
description: 'Test scenario tags'
required: true
type: string
environment:
description: 'Environment to run tests against'
type: environment
required: true
jobs:
print-tag:
runs-on: ubuntu-latest
if: ${{ inputs.print_tags }}
steps:
- name: Print the input tag to STDOUT
run: echo The tags are ${{ inputs.tags }}
åå©çšå¯èœãªã¯ãŒã¯ãããŒã®å ¥åãåºåãã·ãŒã¯ã¬ãããå®çŸ©ãã
åå©çšå¯èœãªã¯ãŒã¯ãããŒãåŒã³åºãå ã®ã¯ãŒã¯ãããŒããåãåãå ¥åãšã·ãŒã¯ã¬ãããå®çŸ©ã§ããŸãã ãŸããåå©çšå¯èœãªã¯ãŒã¯ãããŒãåŒã³åºãå ã®ã¯ãŒã¯ãããŒã§äœ¿çšã§ããããã«ããåºåãæå®ããããšãã§ããŸãã 詳ããã¯ããã¯ãŒã¯ãããŒãåå©çšããããã芧ãã ããã
ã€ãã³ãæ å ±ã䜿çšãã
ã¯ãŒã¯ãããŒå®è¡ãããªã¬ãŒããã€ãã³ãã«é¢ããæ
å ±ã¯ãgithub.event
ã³ã³ããã¹ãã§äœ¿çšã§ããŸãã github.event
ã³ã³ããã¹ãã®ããããã£ã¯ãã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãã®çš®é¡ã«ãã£ãŠç°ãªããŸãã ããšãã°ãã€ã·ã¥ãŒãã©ãã«ä»ãããããšãã«ããªã¬ãŒãããã¯ãŒã¯ãããŒã§ã¯ããã®ã€ã·ã¥ãŒãšã©ãã«ã«é¢ããæ
å ±ãå«ãŸããŸãã
ã€ãã³ãã®ãã¹ãŠã®ããããã£ã衚瀺ãã
äžè¬çãªããããã£ãšãã€ããŒãã®äŸã«ã€ããŠã¯ãwebhook ã€ãã³ãã®ããã¥ã¡ã³ããåç §ããŠãã ããã 詳ããã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããã芧ãã ããã
ãŸããgithub.event
ã³ã³ããã¹ãå
šäœãåºåããŠãã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãã§äœ¿çšã§ããããããã£ã確èªããããšãã§ããŸãã
jobs:
print_context:
runs-on: ubuntu-latest
steps:
- env:
EVENT_CONTEXT: ${{ toJSON(github.event) }}
run: |
echo $EVENT_CONTEXT
ã€ãã³ã ããããã£ãžã®ã¢ã¯ã»ã¹ãšäœ¿çš
ã¯ãŒã¯ãããŒã§ github.event
ã³ã³ããã¹ãã䜿çšã§ããŸãã ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãpackage*.json
ã.github/CODEOWNERS
ããŸã㯠.github/workflows/**
ã倿Žãã pull request ãéããããšå®è¡ãããŸãã pull request ã®äœæè
(github.event.pull_request.user.login
) ã octobot
ã§ã dependabot[bot]
ã§ããªãå Žåãã¯ãŒã¯ãããŒã§ã¯ GitHub CLI ã䜿çšã㊠pull request ãžã®ã©ãã«ä»ããšã³ã¡ã³ããè¡ããŸã (github.event.pull_request.number
)ã
on:
pull_request:
types:
- opened
paths:
- '.github/workflows/**'
- '.github/CODEOWNERS'
- 'package*.json'
jobs:
triage:
if: >-
github.event.pull_request.user.login != 'octobot' &&
github.event.pull_request.user.login != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: "Comment about changes we can't accept"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR: ${{ github.event.pull_request.html_url }}
run: |
gh pr edit $PR --add-label 'invalid'
gh pr comment $PR --body 'It looks like you edited `package*.json`, `.github/CODEOWNERS`, or `.github/workflows/**`. We do not allow contributions to these files. Please review our [contributing guidelines](https://github.com/octo-org/octo-repo/blob/main/CONTRIBUTING.md) for what contributions are accepted.'
ã³ã³ããã¹ãã«ã€ããŠè©³ããã¯ããã³ã³ããã¹ã ãªãã¡ã¬ã³ã¹ããã芧ãã ããã ã€ãã³ã ãã€ããŒãã«ã€ããŠè©³ããã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããã芧ãã ããã
ã¯ãŒã¯ãããŒã®å®è¡æ¹æ³ãããã«çްããå¶åŸ¡ãã
ã€ãã³ããã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ããŸãã¯ã€ãã³ã ãã£ã«ã¿ãŒã«ããå¶åŸ¡ãããããã«çްããå¶åŸ¡ãå¿ èŠãªå Žåã¯ãæ¡ä»¶ãšç°å¢ã䜿ã£ãŠãã¯ãŒã¯ãããŒå ã®åã ã®ãžã§ããŸãã¯ã¹ããããå®è¡ãããã©ãããå¶åŸ¡ã§ããŸãã
æ¡ä»¶ã®äœ¿çš
æ¡ä»¶ã䜿ã£ãŠãã¯ãŒã¯ãããŒå ã®ãžã§ããŸãã¯ã¹ããããå®è¡ãããã©ãããããã«çްããå¶åŸ¡ã§ããŸãã
ã€ãã³ã ãã€ããŒãã®å€ã䜿çšããäŸ
ããšãã°ãã€ã·ã¥ãŒã«ç¹å®ã®ã©ãã«ã远å ããããšãã«ã¯ãŒã¯ãããŒãå®è¡ãããå Žåã¯ãissues labeled
ã€ãã³ã ã¢ã¯ãã£ããã£ã®çš®é¡ã«å¯ŸããŠããªã¬ãŒããæ¡ä»¶ã䜿ã£ãŠã¯ãŒã¯ãããŒãããªã¬ãŒããã©ãã«ããã§ãã¯ããããšãã§ããŸãã æ¬¡ã®ã¯ãŒã¯ãããŒã¯ãã¯ãŒã¯ãããŒã®ãªããžããªå
ã®ã€ã·ã¥ãŒã«ä»»æã®ã©ãã«ã远å ããããšãã«å®è¡ãããŸãããrun_if_label_matches
ãžã§ããå®è¡ãããã®ã¯ã©ãã«ã®ååã bug
ã§ããå Žåã®ã¿ã§ãã
on:
issues:
types:
- labeled
jobs:
run_if_label_matches:
if: github.event.label.name == 'bug'
runs-on: ubuntu-latest
steps:
- run: echo 'The label was bug'
ã€ãã³ãã®çš®é¡ã䜿çšããäŸ
ããšãã°ãã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãã«å¿ããŠç°ãªããžã§ããŸãã¯ã¹ããããå®è¡ãããå Žåã¯ãæ¡ä»¶ã䜿ã£ãŠãã€ãã³ã ã³ã³ããã¹ãã«ç¹å®ã®ã€ãã³ãã®çš®é¡ãååšãããã©ããããã§ãã¯ã§ããŸãã æ¬¡ã®ã¯ãŒã¯ãããŒã¯ãã€ã·ã¥ãŒãŸã㯠pull request ãã¯ããŒãºããããã³ã«å®è¡ãããŸãã ã€ã·ã¥ãŒãã¯ããŒãºãããããã«ã¯ãŒã¯ãããŒãå®è¡ãããå Žåãgithub.event
ã³ã³ããã¹ãã«ã¯ issue
ã®å€ãå«ãŸããŸãããpull_request
ã®å€ã¯å«ãŸããŸããã ãããã£ãŠãif_issue
ã¹ãããã¯å®è¡ãããŸãããif_pr
ã¹ãããã¯å®è¡ãããŸããã éã«ãpull request ãã¯ããŒãºãããããã«ã¯ãŒã¯ãããŒãå®è¡ãããå Žåãif_pr
ã¹ãããã¯å®è¡ãããŸãããif_issue
ã¹ãããã¯å®è¡ãããŸããã
on:
issues:
types:
- closed
pull_request:
types:
- closed
jobs:
state_event_type:
runs-on: ubuntu-latest
steps:
- name: if_issue
if: github.event.issue
run: |
echo An issue was closed
- name: if_pr
if: github.event.pull_request
run: |
echo A pull request was closed
ã€ãã³ã ã³ã³ããã¹ãã§äœ¿çšã§ããæ å ±ã«ã€ããŠè©³ããã¯ããã€ãã³ãæ å ±ã䜿çšããããã芧ãã ããã æ¡ä»¶ãäœ¿ãæ¹æ³ã«ã€ããŠè©³ããã¯ããã¯ãŒã¯ãããŒãšã¢ã¯ã·ã§ã³ã§åŒãè©äŸ¡ããããã芧ãã ããã
ç°å¢ã䜿çšããŠã¯ãŒã¯ãã㌠ãžã§ããæåã§ããªã¬ãŒãã
ã¯ãŒã¯ãããŒå
ã®ç¹å®ã®ãžã§ããæåã§ããªã¬ãŒãããå Žåã¯ãç¹å®ã®ããŒã ãŸãã¯ãŠãŒã¶ãŒããã®æ¿èªãå¿
èŠãšããç°å¢ã䜿çšã§ããŸãã ãŸããå¿
èŠãªã¬ãã¥ãŒæ
åœè
ã䜿çšããŠç°å¢ãæ§æããŸãã 詳ããã¯ãããããã€ã«ç°å¢ã®äœ¿çšããã芧ãã ããã æ¬¡ã«ãenvironment:
ããŒã䜿ã£ãŠãã¯ãŒã¯ãããŒå
ã®ãžã§ãã§ç°å¢åãåç
§ããŸãã ç°å¢ãåç
§ãããžã§ãã¯ãå°ãªããšã 1 人ã®ã¬ãã¥ãŒæ
åœè
ããã®ãžã§ããæ¿èªãããŸã§å®è¡ãããŸããã
ããšãã°ã次ã®ã¯ãŒã¯ãããŒã¯ãmain ãžã®ããã·ã¥ãçºçãããã³ã«å®è¡ãããŸãã build
ãžã§ãã¯åžžã«å®è¡ãããŸãã publish
ãžã§ãã¯ãbuild
ãžã§ããæ£åžžã«å®äºã (needs: [build]
ã«ãã)ãproduction
ãšããç°å¢ã®ãã¹ãŠã®ã«ãŒã« (å¿
èŠãªã¬ãã¥ãŒæ
åœè
ãå«ã) ã«åæ Œãã (environment: production
ã«ãã) ãšãã«åããŠå®è¡ãããŸãã
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: build
run: |
echo 'building'
publish:
needs: [build]
runs-on: ubuntu-latest
environment: production
steps:
- name: publish
run: |
echo 'publishing'
ã¡ã¢
ç°å¢ãç°å¢ã·ãŒã¯ã¬ãããããã³ãããã€ä¿è·ã«ãŒã«ã¯ãçŸåšã®ãã¹ãŠã® GitHub ãã©ã³ã®ãããªã㯠ãªããžããªã§äœ¿çšã§ããŸãã ããã³ãºãã·ã«ããŒããŽãŒã«ããªã©ã®åŸæ¥ã®ãã©ã³ã§ã¯äœ¿çšã§ããŸããã ãã©ã€ããŒããŸãã¯å éšãªããžããªå ã®ç°å¢ãç°å¢ã®ã·ãŒã¯ã¬ãããããã〠ãã©ã³ãã«ã¢ã¯ã»ã¹ããã«ã¯ãGitHub ProãGitHub Team ãŸã㯠GitHub Enterprise ã䜿ãå¿ èŠããããŸãã GitHub Free ãã©ã³ãGitHub Pro ãã©ã³ããŸã㯠GitHub Team ãã©ã³ã䜿çšããŠããå ŽåãåŸ æ©ã¿ã€ããŒãå¿ é ã®ã¬ãã¥ãŒæ åœè ãªã©ãä»ã®ãããã€ä¿è·ã«ãŒã«ã¯ãããªã㯠ãªããžããªã§ã®ã¿äœ¿çšã§ããŸãã
䜿çšã§ããã€ãã³ã
䜿çšã§ãããã¹ãŠã®ã€ãã³ãã®äžèЧã«ã€ããŠã¯ããã¯ãŒã¯ãããŒãããªã¬ãŒããã€ãã³ãããã芧ãã ããã