Skip to content

Commit d651191

Browse files
authored
Add 4
1 parent c6e8155 commit d651191

1 file changed

Lines changed: 59 additions & 2 deletions

File tree

README.md

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ C#으로 구성한 sln을 CI/CD를 통해 자동 빌드 및 테스트 하여 배
66
### 목표
77
- [x] : 1. 목표 선정
88
- [x] : 2. 프로젝트 구성
9-
- [ ] : 3. CICD 구성
9+
- [x] : 3. CICD 구성
1010
- [ ] : 4. Build & Deploy Test
1111

1212
### 제작자
@@ -86,4 +86,61 @@ C#으로 구성한 sln을 CI/CD를 통해 자동 빌드 및 테스트 하여 배
8686

8787
<br><br>
8888

89-
# 3. CICD
89+
# 3. CICD 구성
90+
91+
- CICD를 다음과 같이 구성한다.
92+
- window 환경을 사용하기에, 명령어를 Powershell에 맞게 구성한다.
93+
```yml
94+
name: Build and Deploy Test
95+
96+
on:
97+
push:
98+
branches:
99+
- 'main'
100+
101+
jobs:
102+
build:
103+
runs-on: windows-latest # 실행할 runner 환경 지정
104+
105+
steps:
106+
- name: Checkout code
107+
uses: actions/checkout@v2
108+
109+
- name: Setup .NET
110+
uses: actions/setup-dotnet@v1
111+
112+
- name: Build and Test
113+
run: |
114+
cd CSharpTest
115+
dotnet build CSharpTest.sln
116+
dotnet test ./UnitTestProject1/UnitTestProject1.csproj
117+
# 빌드 및 테스트 실패 시 바로 종료
118+
if: ${{ job.status == 'success' }}
119+
120+
- name: Merge commit message
121+
run: |
122+
git log -1 --pretty=%B > message.txt
123+
echo "::set-output name=message::$(Get-Content message.txt)"
124+
id: merge_message
125+
126+
# release 태그로부터 version 정보 추출하여 output으로 설정
127+
- name: Get Release Version
128+
if: startsWith(steps.merge_message.outputs.message, 'Release')
129+
run: |
130+
echo "::set-output name=version::$(("${{steps.merge_message.outputs.message}}" -replace 'Release ', ''))"
131+
id: extract_release_version
132+
133+
- name: Create release tag
134+
if: startsWith(steps.merge_message.outputs.message, 'Release')
135+
uses: actions/create-release@v1
136+
env:
137+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138+
with:
139+
tag_name: ${{ steps.extract_release_version.outputs.version }}
140+
release_name: Release ${{ steps.extract_release_version.outputs.version }} v${{ github.run_number }}
141+
body: ${{ steps.merge_message.outputs.message }}
142+
draft: false
143+
prerelease: false
144+
```
145+
146+
<br><br>

0 commit comments

Comments
 (0)