Skip to content

Update 9

Update 9 #30

name: Deploy to production # workflow 이름 지정
on:
push:
branches:
- 'main*' # main로 시작하는 브랜치에 대한 pull request 이벤트 감지
jobs:
build-and-deploy:
runs-on: ubuntu-latest # 실행할 runner 환경 지정
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
# 코드를 checkout
- name: Build and test # 빌드 및 테스트 수행
run: |
# Add build and test steps here
# 최근 commit의 메시지를 가져와서 message.txt 파일에 저장하고, output으로 message 변수에 저장
- name: Merge commit message
run: |
git log -1 --pretty=%B > message.txt
echo "::set-output name=message::$(cat message.txt)"
id: merge_message
- name: Get Release Version
if: startsWith(steps.merge_message.outputs.message, 'Release')
id: extract_release_version # release 버전 추출
run: |
echo "::set-output name=version::$(echo ${{ steps.merge_message.outputs.message }} | sed 's/Release //')" # release 태그로부터 version 정보 추출하여 output으로 설정
- name: Create release tag
if: startsWith(steps.merge_message.outputs.message, 'Release') # startsWith 함수를 사용하여 message가 'Release'로 시작하는지 확인하고, tag 생성
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.extract_release_version.outputs.version }} # 반드시 v0.1.1와 같이 v 접두사가 들어가야 한다.
release_name: Release ${{ steps.extract_release_version.outputs.version }} v${{ github.run_number }}
body: ${{ steps.merge_message.outputs.message }}
draft: false
prerelease: false
- name: Deploy to production # 배포 단계 추가
if: startsWith(steps.merge_message.outputs.message, 'Release')
run: |
# Add deployment steps here