ã2026幎çãGitHub Actionsã®å§ãæ¹ â CI/CDãèªååããå®å šã¬ã€ã
- ã¯ãŒã¯ãããŒYAMLã®åºæ¬æ§é ïŒon/jobs/stepsïŒ
- ããªã¬ãŒïŒpush/pull_request/scheduleïŒã®èšå®
- ãã¹ãèªååã»ãããã€èªååã®åºæ¬
- ã·ãŒã¯ã¬ããïŒSecretsïŒã®å®å šãªç®¡çæ¹æ³
ã¯ãŒã¯ãããŒã®åºæ¬æ§é
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # ãªããžããªããã§ãã¯ã¢ãŠã
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
ãã䜿ãã¢ã¯ã·ã§ã³æ©èŠè¡š
| ã¢ã¯ã·ã§ã³ | çšé |
|---|---|
actions/checkout@v4 | ã³ãŒãããã§ãã¯ã¢ãŠã |
actions/setup-node@v4 | Node.jsãã»ããã¢ãã |
actions/setup-python@v5 | Pythonãã»ããã¢ãã |
actions/cache@v4 | äŸåé¢ä¿ããã£ãã·ã¥ |
actions/upload-artifact@v4 | ãã¡ã€ã«ãã¢ãŒãã£ãã¡ã¯ãã«ä¿å |
ã·ãŒã¯ã¬ããã®äœ¿ãæ¹:
- name: Deploy
env:
API_KEY: ${{ secrets.API_KEY }} # ãªããžããªã®Secretsããåç
§
run: ./deploy.sh
ããããè©°ãŸããã€ã³ã
Q: ã¯ãŒã¯ãããŒãåããªã
â ãŸã .github/workflows/ ãã£ã¬ã¯ããªã«æ£ããYAMLãé
眮ãããŠããã確èªãYAMLã®ã€ã³ãã³ããã¹ãå€ããããVSCodeã®YAMLæ¡åŒµæ©èœã䜿ããšæ§æãšã©ãŒãäºåã«æ€åºã§ããŸãã
Q: ã·ãŒã¯ã¬ããããã°ã«åºåããŠããŸãããã§æã
â GitHub Actionsã¯Secretsã®å€ããã°ã§èªåçã«ãã¹ã¯ããŸãããã ã base64 ãšã³ã³ãŒããªã©ã§å€åœ¢ããå€ã¯ãã¹ã¯ãããªãã®ã§æ³šæãå¿
èŠã§ãã
Q: å®è¡æéãé·ããã
â actions/cache ã§ node_modules ã .pip ããã£ãã·ã¥ãããšå€§å¹
ã«ççž®ã§ããŸãããžã§ãã䞊åå®è¡ïŒneeds ãå€ãïŒããã®ãæå¹ã§ãã