Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Protocol
- Refactoring
- 클린 코드
- uiscrollview
- 스위프트
- 애니메이션
- clean architecture
- MVVM
- Observable
- Clean Code
- combine
- map
- Human interface guide
- ribs
- rxswift
- HIG
- collectionview
- 리펙토링
- ios
- tableView
- SWIFT
- swiftUI
- uitableview
- 리펙터링
- swift documentation
- UICollectionView
- Xcode
- UITextView
- 리팩토링
- RxCocoa
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. GitHub Action 개념, 기능 (CI/CD) 본문
Git, CocoaPods, Xcode, Shell/Git
[iOS - swift] 1. GitHub Action 개념, 기능 (CI/CD)
jake-kim 2021. 12. 4. 02:211. GitHub Action 개념, 기능 (CI/CD)
2. GitHub Action 사용 방법 (CI/CD)
Github Action
- PR을 날릴때마다 프로젝트에 문제가 있는지 자동으로 빌드 테스트
- 테스트 및 배포 파이프라인 CI/CD 구축
- workflow 사용
- 순차적 or 병렬로 실행할 수 있는 하나 이상의 작업이 존재
Workflow
- workflow란 미리 정해진대로 기능이 수행되는 작업 흐름
- repository에 yaml파일에 의해 저장
- workflow는 이벤트에 의해 트리거될 때 수행되거나 수동으로 수행
- 이벤트: PR 생성, commit을 푸시 등
Workflows 설정 방법
- Actions 클릭
- workflow 구현
- swift언어를 찾아서 Set up this workflow 선택
- Xcode 프로젝트를 자동으로 인식하여, github에서 자동으로 swift언어를 맨 위로 추천
- yml 파일 확인
- 이 파일의 내용을 알맞게 설정하여, 자신이 원하는 조건이 트리거 될때마다 원하는 작업이 실행되게끔 가능
Workflow 문법
- 트리거 조건
- on: 언제 행동을 트리거 시킬지에 관한 문법
- push: (푸시 트리거)
- branchs: (브랜치 푸시 트리거)
- pull_request: (PR 트리거)
- on: 언제 행동을 트리거 시킬지에 관한 문법
- 특정 브랜치 푸시 트리거 적용 방법
- 이름이 "feature/" 로 시작하는 트리거 브랜치 푸시 시 트리거 동작
- feature/*
on:
push:
branches: [ feature/* ]
pull_request:
branches: [ main ]
cf) `v`로 시작하는 태그 푸시 트리거 발생
on:
push:
tags:
- v*
- 트리거 발생 시 실행
- runs-on: 어느 플랫폼에서 실행시킬지 설정 (iOS인 경우 디폴트 값 macos-latest로 설정)
- uses: 테스트를 하기 위해서 Repository의 코드 복사본을 만드는 코드
- name: 실행할 작업의 이름
- run: 스위프트 컴파일러로 빌드하는 명령어
- run 작성 방법
- 여러 명령어를 사용하려면 한칸 뛰고 `|` 입력
run: | pod install --repo-update --clean-install ... 생략
- schedule로 트리거 시간 지정
- 사용 방법
- ex) 7시에 월~목에만 트리거 되게끔 설정
on: schedule: - cron: 0 7 * * 1-5
- 사용 방법
간단히 사용 방법
- Action 탭 > file 내용 작성
- run 부분에 문자열이 출력되도록 아래처럼 수정
name: Swift
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: echo Hello, world!
- name: Run tests
run: |
echo Add other actions to build,
echo test, and edploy your project
- Action 탭 > 내용 작성 후 > start commit 클릭
- 파일 이름과 내용을 기입한 후 Commit new file 클릭
- commit 생성
- {project} / .github / workflows
- 해당 코드가 commit, push가 되면서 action 실행
- Actions 탭을 눌러보면 결과 확인 가능
- build 클릭하면 세부 정보 확인 가능
- workflow가 실패한 경우
Test 돌리는 방법 예시
- .github/workflows/swift.yml 파일 수정
- Run tests run: 부분을 아래와 같이 수정
- xcodebuild를 사용하여 빌드를 수행하고, 프로젝트의 xcodeproj, scheme, desitination을 옵션으로 주어 실행
- name: Run tests
run: |
xcodebuild clean test -project ExGithubAction.xcodeproj -scheme ExGithubAction -destination "platform=iOS Simulator,name=iPhone 11"
- Start commit 클릭
- test 성공
* 참고
- https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
- https://docs.github.com/en/actions
'Git, CocoaPods, Xcode, Shell > Git' 카테고리의 다른 글
[Git - terminal] git 특정 부분만 stage로 올리는 방법 (git status, git diff, git add -p) (2) | 2023.05.08 |
---|---|
[Git] git rebase interactive, git rebase -i, squash (커밋 합치기, 스쿼시, 중간에 커밋 넣기, 커밋 순서 바꾸기, conflict 해결 방법) (0) | 2023.04.29 |
[git] 롤백 revert, reset, cherry-pick (0) | 2021.02.09 |
[Git] 9. rebase interactive - 이전 커밋내용 수정하기 (source tree 사용) (0) | 2020.08.31 |
[Git] 8. Rebase, git flow (2) | 2020.06.11 |
Comments