GitHub Actions 파이프라인 기본 구조
- GitHub Actions는 .github/workflows/ 경로에 *.yml 파일로 파이프라인을 정의합니다
name: CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup environment
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: npm run build
name: Docker Build and Push
on:
push:
branches:
- main
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
push: true
tags: username/myapp:latest
name: Deploy to Azure Web App
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies and build
run: |
npm install
npm run build
- name: Deploy to Azure
uses: azure/webapps-deploy@v3
with:
app-name: my-azure-webapp
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: .
name: Build and Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build project
run: |
mkdir build
echo "This is build artifact" > build/output.txt
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-files
path: build
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: build-files
path: ./artifact
- name: Deploy artifact
run: |
echo "Deploying..."
cat ./artifact/output.txt