Skip to content

코드 병합 (#119) #23

코드 병합 (#119)

코드 병합 (#119) #23

name: OromaminC Backend Service Release
on:
push:
branches:
- release
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
tagging:
name: 태깅 및 릴리즈
runs-on: ubuntu-latest
outputs:
tag_name: ${{ steps.tag_version.outputs.new_tag }}
steps:
- uses: actions/checkout@v4
- name: versioning and tagging
id: tag_version
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: releasing
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.tag_version.outputs.new_tag }}
name: ${{ steps.tag_version.outputs.new_tag }}
body: ${{ steps.tag_version.outputs.changelog }}
build-image:
name: 도커 이미지 빌드
runs-on: ubuntu-latest
needs: tagging
permissions:
contents: read
packages: write
attestations: write
id-token: write
steps:
- name: Check out Repository
uses: actions/checkout@v4
- name: Setting for Developent
run: |
mkdir -p src/main/resources
echo "${{ secrets.APPLICATION_DEV_YML }}" > src/main/resources/application-dev.yml
- name: Sign in github container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha
type=raw,value=${{ needs.tagging.outputs.tag_name }}
type=raw,value=latest
- name: Build and Push Image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
SPRING_PROFILES_ACTIVE=dev
deploy:
name: EC2 자동 배포
runs-on: ubuntu-latest
needs: build-image
steps:
- name: EC2에 SSH로 접속 후 배포
uses: appleboy/[email protected]
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_SSH_KEY }}
port: ${{ secrets.EC2_PORT }}
script: |
cd ${{ secrets.EC2_DEPLOY_DIR }}
docker compose pull
docker compose down
docker compose up -d