Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudOpen Source Consulting
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
Continuous integration (CI) is a software development practice where developers integrate code into a shared repository frequently, preferably multiple times a day. Each integration is verified by an automated build and test process to detect errors early. CI utilizes source control, automated builds, and tests to minimize the time between code changes being integrated and identified issues being found. While CI focuses on frequent code integration and testing, it does not require constant production releases or infrastructure automation. CI helps reduce integration problems and allows development teams to work together more efficiently.
Jenkins is a tool that allows users to automate multi-step processes that involve dependencies across multiple servers. It can be used to continuously build, test, and deploy code by triggering jobs that integrate code, run tests, deploy updates, and more. Jenkins provides a web-based interface to configure and manage recurring jobs and can scale to include slave agents to perform tasks on other machines. It offers many plugins to support tasks like testing, deployment, and notifications.
source : https://www.openmaru.io/?p=3076
가상화 기술은 하이퍼바이저를 통해 하드웨어를 에뮬레이션하여 가상 이미지 마다 게스트 운영 체제를 사용합니다.
컨테이너 는 애플리케이션 수준으로 구성되며 커널 하나를 공유하는 여러 OS 가상화하기 때문에 OS가 포함되지 않아 크기가 작고, 고속으로 시작과 정지 합니다.
그 차이점을 보다 구체적으로 알아보겠습니다.
This document provides an overview of unit testing in Angular, including setting up Angular CLI for testing, the tools used for testing like Karma and Jasmine, how to write test specs with expectations and matchers, how to set up and tear down tests, and how to test different parts of an Angular application like components, templates, dependencies, and HTTP services. The agenda also includes debugging tests and generating code coverage reports.
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudOpen Source Consulting
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
Continuous integration (CI) is a software development practice where developers integrate code into a shared repository frequently, preferably multiple times a day. Each integration is verified by an automated build and test process to detect errors early. CI utilizes source control, automated builds, and tests to minimize the time between code changes being integrated and identified issues being found. While CI focuses on frequent code integration and testing, it does not require constant production releases or infrastructure automation. CI helps reduce integration problems and allows development teams to work together more efficiently.
Jenkins is a tool that allows users to automate multi-step processes that involve dependencies across multiple servers. It can be used to continuously build, test, and deploy code by triggering jobs that integrate code, run tests, deploy updates, and more. Jenkins provides a web-based interface to configure and manage recurring jobs and can scale to include slave agents to perform tasks on other machines. It offers many plugins to support tasks like testing, deployment, and notifications.
source : https://www.openmaru.io/?p=3076
가상화 기술은 하이퍼바이저를 통해 하드웨어를 에뮬레이션하여 가상 이미지 마다 게스트 운영 체제를 사용합니다.
컨테이너 는 애플리케이션 수준으로 구성되며 커널 하나를 공유하는 여러 OS 가상화하기 때문에 OS가 포함되지 않아 크기가 작고, 고속으로 시작과 정지 합니다.
그 차이점을 보다 구체적으로 알아보겠습니다.
This document provides an overview of unit testing in Angular, including setting up Angular CLI for testing, the tools used for testing like Karma and Jasmine, how to write test specs with expectations and matchers, how to set up and tear down tests, and how to test different parts of an Angular application like components, templates, dependencies, and HTTP services. The agenda also includes debugging tests and generating code coverage reports.
Continuous integration involves developers committing code changes daily which are then automatically built and tested. Continuous delivery takes this further by automatically deploying code changes that pass testing to production environments. The document outlines how Jenkins can be used to implement continuous integration and continuous delivery through automating builds, testing, and deployments to keep the process fast, repeatable and ensure quality.
This document provides an introduction to continuous integration with Jenkins. It discusses what continuous integration is and why Jenkins is commonly used for CI. Jenkins allows for easy installation and configuration, extensive extensibility through plugins, and distributed builds across multiple nodes. The document outlines common CI workflows and components like version control, automated building and testing. It also covers Jenkins' major functionalities, platforms supported, notifications, advanced configuration options and principles of continuous delivery.
Continuous Integration/Deployment with Gitlab CIDavid Hahn
This document discusses continuous integration/deployment with Gitlab CI. It provides an introduction and overview of continuous integration, continuous delivery, and deployment. It then discusses Gitlab and Gitlab CI in more detail, including stages and pipelines, the UI, runners, using CI as code, and examples for Node.js + React, Java + Angular, and Electron applications. The sources section lists links and image sources for additional information.
This document discusses the Given-When-Then style of writing requirements to clarify thinking. It can be applied at three levels: 1) business events, 2) user interface, and 3) code behavior. At each level, the Given defines preconditions, When identifies events or operations, and Then identifies postconditions. This style makes requirements testable. It is compared to user stories and use cases. GitHub resources for further information on Given-When-Then are also provided.
* What is different GitHub Flow and Git Flow?
* What is GitHub Actions?
* How to write the simple workflow?
* What's problem in GitHub Actions UI?
* What's problem with Secrets in GitHub Actions?
* How to write your first GitHub Actions and upload to the marketplace?
* What's a problem with environment variables in GitHub Actions?
The document provides an overview of Jenkins, a popular open source continuous integration (CI) tool. It discusses what CI is, describes Jenkins' architecture and features like plugin extensibility. It also covers installing and configuring Jenkins, including managing plugins, nodes and jobs. The document demonstrates how to set up a sample job and outlines benefits like supporting Agile development through continuous integration and access to working software copies.
Using GitHub Actions to Deploy your Workloads to AzureKasun Kodagoda
This presentation provides an introduction to GitHub Actions and the core concepts of GitHub Actions. Then dives into details about how you can use GitHub Actions for Azure to deploy your workloads to Azure Cloud Platform.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
2019년 11월 20일 스마트시티 부산 포럼에서 발표한 자료입니다. 디지털 트윈은 자연과 세계를 이해하려는 인류의 오랜 노력의 산물이라는 점, 필연적으로 현실과 가상의 '동치'라는 문제가 발생한다는 점, 그리고 디지털 트윈이 과연 복잡계인 사회에 적용될 수 있는가 등에 대해 자문했습니다. 뒤의 상당 부분은 저희 회사(가이아쓰리디)가 개발하고 있는 오픈소스 기반의 디지털 트윈 플랫폼 mago3D에 관한 소개입니다. 참고하시기 바랍니다.
Chris OBrien - Azure DevOps for managing workChris O'Brien
A presentation I gave at ESPC 2019 (the European SharePoint, Office 365 and Azure Conference) about Azure DevOps for managing both development and support work. The focus is on Azure DevOps boards and task management, but covers some CI/CD aspects too.
This document provides an introduction to Gitlab CI and continuous integration/continuous delivery (CI/CD) workflows. It discusses DevOps practices and the benefits of Gitlab CI. It then covers how to set up Gitlab runners, write a basic Gitlab CI configuration file, define jobs, stages, variables and environments. The document demonstrates concepts like Docker integration, artifacts, auto and manual deployments, and stopping deployments. It concludes with a live demo of a Gitlab CI configuration.
This document provides an introduction to Jenkins, including:
- Jenkins is an open source automation server that enables developers to reliably build, test, and deploy software.
- It helps automate software development processes like building, testing, and deploying to facilitate continuous integration and delivery.
- Jenkins supports continuous integration workflows called pipelines that can be modeled as code in Jenkinsfiles and checked into version control.
Continuous integration involves developers committing code changes daily which are then automatically built and tested. Continuous delivery takes this further by automatically deploying code changes that pass testing to production environments. The document outlines how Jenkins can be used to implement continuous integration and continuous delivery through automating builds, testing, and deployments to keep the process fast, repeatable and ensure quality.
This document provides an introduction to continuous integration with Jenkins. It discusses what continuous integration is and why Jenkins is commonly used for CI. Jenkins allows for easy installation and configuration, extensive extensibility through plugins, and distributed builds across multiple nodes. The document outlines common CI workflows and components like version control, automated building and testing. It also covers Jenkins' major functionalities, platforms supported, notifications, advanced configuration options and principles of continuous delivery.
Continuous Integration/Deployment with Gitlab CIDavid Hahn
This document discusses continuous integration/deployment with Gitlab CI. It provides an introduction and overview of continuous integration, continuous delivery, and deployment. It then discusses Gitlab and Gitlab CI in more detail, including stages and pipelines, the UI, runners, using CI as code, and examples for Node.js + React, Java + Angular, and Electron applications. The sources section lists links and image sources for additional information.
This document discusses the Given-When-Then style of writing requirements to clarify thinking. It can be applied at three levels: 1) business events, 2) user interface, and 3) code behavior. At each level, the Given defines preconditions, When identifies events or operations, and Then identifies postconditions. This style makes requirements testable. It is compared to user stories and use cases. GitHub resources for further information on Given-When-Then are also provided.
* What is different GitHub Flow and Git Flow?
* What is GitHub Actions?
* How to write the simple workflow?
* What's problem in GitHub Actions UI?
* What's problem with Secrets in GitHub Actions?
* How to write your first GitHub Actions and upload to the marketplace?
* What's a problem with environment variables in GitHub Actions?
The document provides an overview of Jenkins, a popular open source continuous integration (CI) tool. It discusses what CI is, describes Jenkins' architecture and features like plugin extensibility. It also covers installing and configuring Jenkins, including managing plugins, nodes and jobs. The document demonstrates how to set up a sample job and outlines benefits like supporting Agile development through continuous integration and access to working software copies.
Using GitHub Actions to Deploy your Workloads to AzureKasun Kodagoda
This presentation provides an introduction to GitHub Actions and the core concepts of GitHub Actions. Then dives into details about how you can use GitHub Actions for Azure to deploy your workloads to Azure Cloud Platform.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
2019년 11월 20일 스마트시티 부산 포럼에서 발표한 자료입니다. 디지털 트윈은 자연과 세계를 이해하려는 인류의 오랜 노력의 산물이라는 점, 필연적으로 현실과 가상의 '동치'라는 문제가 발생한다는 점, 그리고 디지털 트윈이 과연 복잡계인 사회에 적용될 수 있는가 등에 대해 자문했습니다. 뒤의 상당 부분은 저희 회사(가이아쓰리디)가 개발하고 있는 오픈소스 기반의 디지털 트윈 플랫폼 mago3D에 관한 소개입니다. 참고하시기 바랍니다.
Chris OBrien - Azure DevOps for managing workChris O'Brien
A presentation I gave at ESPC 2019 (the European SharePoint, Office 365 and Azure Conference) about Azure DevOps for managing both development and support work. The focus is on Azure DevOps boards and task management, but covers some CI/CD aspects too.
This document provides an introduction to Gitlab CI and continuous integration/continuous delivery (CI/CD) workflows. It discusses DevOps practices and the benefits of Gitlab CI. It then covers how to set up Gitlab runners, write a basic Gitlab CI configuration file, define jobs, stages, variables and environments. The document demonstrates concepts like Docker integration, artifacts, auto and manual deployments, and stopping deployments. It concludes with a live demo of a Gitlab CI configuration.
This document provides an introduction to Jenkins, including:
- Jenkins is an open source automation server that enables developers to reliably build, test, and deploy software.
- It helps automate software development processes like building, testing, and deploying to facilitate continuous integration and delivery.
- Jenkins supports continuous integration workflows called pipelines that can be modeled as code in Jenkinsfiles and checked into version control.
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
Digital Transformation 시대의 개발 프로세스의 변화와 개선의 필요성이 대두되면서, DevOps에 대한 관심도 점차 높아지고 있는데요. DevOps 툴로서 아틀라시안(Atlassian)의 도입과 활용이 IT 업종을 비롯한 다양한 회사에서 다방면으로 이루어지고 있습니다. 특히 Atlassian Cloud 버전을 출시하고, 많은 회사들이 Cloud 버전을 사용하면서 DevOps로의 쓰임새가 더욱 확장되고 있습니다.
2013년 4월 24일(수)~26일(금)까지 진행 된 다음세대재단
제10회 인터넷 리더십 프로그램의 강연자료입니다.
- 사이트: http://itcanus.net/leadership
- 트위터: https://twitter.com/daumfoundation
- 페이스북: https://www.facebook.com/daumfoundation
6. Jira는..
• 팀/개인의 이슈 트래킹을 돕는 도구.
• 일종의 투두리스트.
• 다양한 정보를 한눈에 볼 수 있다는 장점.
• 여러 이슈가 서로 어떤 관계를 맺는지
• 이슈가 언제부터 언제까지 진행되는지 (GUI)
• 어떤 이슈의 하위 이슈는 어떤 것들이 있는지
• 어떤 이슈와 관련된 문서나 코드는 어떤 것들이 있는지
7. 언제 어떻게 사용하면 좋을까요?
• 개개인, 그룹이 판단하기 나름!
• Jira는 정말 다양한 기능이 있음.
• 그만큼 익숙해지기 위해 비교적 많은
시간이 필요.
12. Jira 시작하기 (4)
• https://youtu.be/PKnbuxr3N2A
• 기타 설정을 해줍니다.
• 프로젝트 이름
• '템플릿 변경'을 눌러 사용할 템플릿 선택
• (ex. 스크럼: 로드맵 기능 사용 위해)
• 프로젝트 유형 선택
• (ex. 회사가 사용하는 것: 자유로운 커스터마이징)
• 만들기
13. Jira 초기 화면
• 로드맵
• 프로젝트의 전체 흐름
• 백로그
• 스프린트 별 이슈 확인
• 활성 스프린트
• 칸반 보드 형태로 할 일 한눈에 파악
• 코드
• 연동된 원격 저장소의 정보 확인
15. Jira 사용하기: 이슈
• 이슈 유형
• 에픽
• 태스크
• 서브 태스크
• 이슈 유형은 일종의 계층구조
• 태스크는 에픽의 하위
• 서브 태스크는 태스크의 하위로 들어갈 수 있다.
• 자신만의 이슈 기준을 만들자
• 이슈 생성은 '로드맵', '백로그' 페이지에서 가능
16. 이슈엔 무슨 정보가?
• 현재 클릭한 건 '태스크' 계층의 이슈
• '설명'엔 원하는 내용을 적을 수 있음.
• 이슈카드 최상단엔 상위 이슈 표시.
• 하위 이슈 필드엔 생성한 서브 태스크 표시.
• 연동한 페이지가 있다면
• 'Confluence 페이지'처럼 표시.
• 세부정보는 필요에 따라 원하는 정보를 기입.
17. 이슈 똑똑하게 사용하기: 템플릿
• Jira의 특징
• 내가 생각한 모든 기능이 다 있다.
• 프로젝트 내 사용될 이슈의 종류 커스텀 가능
• 이슈별 세부정보 내용도 각각 커스텀 가능
• (초기화면 → 프로젝트 설정 → 이슈 유형)
22. Jira 워크플로 설정하기
• 다양한 이슈유형을 만들고 제거할 수 있음.
• 워크플로우도 마음대로 만들 수 있다.
• 접근 방법
• '설정' → '워크플로'
23. 참고 사례
• 데브시스터즈 QA 팀
• (https://tech.devsisters.com/
posts/jira-of-qa/)
• 필요에 따라 '이슈'의 상태를 분리
24. Jira 워크플로 꿀팁: 자동화
• 하위 작업을 모두 완수하면
• 알아서 상위 작업의 상태가 변경
• 접근 방법
• 프로젝트 설정 → Automation
25. Jira 실습하기: '오늘 뭐 먹지?'
• 해야 할 일: '오늘 뭐 먹을지' 계획하기
• '아침, 점심, 저녁' 메뉴 정하기.
• 문제 상황
• 아침엔 걸어서 주위 음식점을 돌아다니고 갈 곳을 정해야 합니다.
• 점심엔 컴퓨터로 음식점을 검색하고 갈 곳을 정해야 합니다.
• 저녁엔 핸드폰으로 음식점을 검색하고 갈 곳을 정해야 합니다.
• 미션
• 우리는 '오늘 하루 무엇을 먹을지' 미리 정해보기로 했습니다.
• 음식점을 정하기 위해 필요한 일은 어떤 것들이 있을까요?
• 필요한 일이나 이슈를 에픽, 태스크, 서브 태스크로 나누어 분류해봅시다.
• 자신의 기준에 따라 마음대로 만들어 보아요.
• 분류한 이슈를 Jira를 사용하여 만들어봅시다.
35. 초등학교 방학 숙제를 문서화하기
• 다시 초등학교 시절로 돌아가봅시다.
• 방학 동안 해야 할 숙제가 10개.
• 10개의 숙제가 모두 '일기
• 매번 일기를 쓸 때 빈 A4 용지를 가져오고
• '제목', '날짜' 가 들어갈 표를 만들고, 공책처럼 '줄'도 그려줘야 한다면?
• 번거롭다
36. Confluence 이해하기: 템플릿
• 페이지 만들기 창에서 우측 툴바 선택.
• 템플릿 클릭.
• 원하는 양식이 있는지 확인하기.
• 마우스를 원하는 칸에 올리면
• 양식을 '미리보기' 할 수 있음.
37. Confluence 이해하기: 커스텀 템플릿
• 좋은 템플릿이 많지만 너무 거창하거나
오히려 불편할 수도 있다.
• 이럴 땐 나만의 템플릿을 만들자.
• 접근 방법
• 컨플루언스 초기 페이지
• 스페이스 설정 -> 모양새 -> 양식
• 블루프린트 양식: 디폴트로 주어져 있는 양식
• 나만의 양식 만들기
• '새 양식 만들기 버튼' 으로 생성 가능.
38. Confluence 이해하기: 커스텀 템플릿
• 생성페이지에서 원하는 양식을 만들고
이름을 지정하여 저장
• 만든 양식은
'사용자가 만든 양식'에서 확인 가능
39. 커스텀 템플릿으로 문서 생성하기
• Confluence 글쓰기 페이지에서
템플릿 확인.
• '사용자 지정' 버튼 새로 나타남.
• 눌러보면 만들어둔 '템플릿' 확인 가능.
• 템플릿 양식이 너무 많다면 '스페이스 설정' → '모양새' → '양식'
→ '원하는 양식 비활성화' 해서 관리해줄 수 있다.
41. 연동 방법?
• 최초 설치 때 Jira와 Confluence를 같이 선택했기에 따로
연동과정이 필요하진 않음.
• 이외의 경우 링크를 참고해보세요.
42. Jira 이슈에 Confluence 페이지 추가하기
• Jira 이슈 카드엔 텍스트나 여러 내용을 입력할 수 있다.
• 하지만 이슈 카드엔 이슈 내용만 간단히 적고, 다른 내용은 따로 페이지를 만
들어 저장하고 싶을 수도 있다.
• 이럴 때 confluence 페이지를 만들고 Jira 이슈에 연동해주면, 아카이빙과
이슈트래킹을 함께 할 수 있다.
• Google drive 등, 다른 앱도 유사한 방식으로 연동해줄 수 있다.
43. Jira 이슈에 Confluence 페이지를 추가하는 방법
1. confluence 페이지를 추가하고 싶은 이슈 카드를 선택.
2. 클립 아이콘 클릭.
3. confluence 페이지 연결을 선택.
4. 검색 기능 등을 이용, 원하는 페이지 선택.
46. Bitbucket은..
• 웹 기반 버전 관리 저장소 호스팅 서비스. (위키백과)
• github과 거의 동일하다.
• Jira, Confluence와 연동해서 사용할 수 있다.
• 어떤 커밋이 어떤 이슈와 연결되는지 쉽게 파악할 수 있다.
47. 왜 Github을 쓰지 않는 건가요?
• bitbucket이 Jira와 호환도 더 잘 되고 편하기 때문.
• 물론 저도 익숙한 github을 써보려고는 했는데요..
48. 왜 Github을 쓰지 않는 건가요?
• 유료라서..
• Jira와 연동하려면 Github Enterprise
를 사용해야 하는데, 요금을 내야 함.
• 14일 간 무료 시험이 가능.
• 해보실 분은 해보셔도... (연 5000달러)
• '프로젝트 설정 → 개발 도구' -> '연결'
클릭해서 볼 수 있음.
50. Bitbucket 연결하기
• Jira 초기 화면 속 '프로젝트 설정' 클릭
• 개발 도구
• '연결' 클릭
• Bitbucket Cloud 선택.
• 연동시킬 지라 워크스페이스 선택하고 grant
access를 선택
• 접근 허가
51. Bitbucket 초기 화면
• 연결이 완료된 모습.
• 모든 리포지토리에 대한 smart commits 사용 체크.
• smart commit이 궁금하다면 (링크)
• 아직 아무런 레포지토리를 만들지 않아 테스트 불가
52. Bitbucket 레포지토리 만들기
• Bitbucket 에 접속.
• create repository 누르기.
• 레포지토리는 한 프로젝트에 여러 개일 수도 있음.
• 원하는 프로젝트 이름과 레포지토리 이름으로 채우기.
• private: 권한 없는 사용자에게 레포지토리 접근 불가
• public: 링크가 있다면 누구나 레포지토리 접근 가능
• 기본적으로 bitbucket 레포지토리는 구글에서 검색이 되지 않음
55. 브랜치 만들기 (1)
• Jira Software로 이동
• 브랜치를 생성하고 싶은 이슈를 선택
(ex. 코드 작업이 필요한 이슈)
• 브랜치 만들기를 누른다.
56. 브랜치 만들기 (2)
• 분기점이 될 기준 브랜치(from branch)를 설정하고 type을 설정.
• type엔 feature/bugfix 등이 default로 설정되어 있고,
원하는 경우 custom 가능.
• branch 이름은 자동으로 생성되나 변경 가능.
• 주목할 점
• 개별 이슈에 해당하는 코드 작업을 추적하기 위해 브랜치에도 이슈 번호
를 적어주어야 함.
• 원하는 이슈 카드의 번호를 적어두고 설정하자.
• 여러 이슈에 한번에 연동하고 싶다면 JIR-1 JIR-2 등, 이슈 번호가 구
분되게 작성.
• 커밋도 같은 원리
59. Bitbucket에서 Jira 이슈 확인하기
• 지금까지의 과정으로 Jira에서 bitbucket의
내용은 확인 가능.
• 하지만 Bitbucket의 Jira issues를 누르면
아직 아무것도 볼 수 없음.
• 우상단 아이콘을 눌러서 Jira 프로젝트를 연결.
• Link Project 클릭 후 결과 확인.
62. Commit, Push 해보기
• commit을 할 땐 직접 메시지를 작성.
• 커밋 메시지에 '이슈 번호'를 기재.
• '스마트 커밋' 기능을 이용하기 위해
'이슈번호'를 커밋메시지에 작성 필요.
• 하나의 커밋이 여러 이슈에 한번에 연동하고 싶다면,
JIR-1 JIR-2 등, 이슈 번호가 구분되게 작성.
• Push
63. push 오류: 권한이 없을 때
• 권한이 없을 경우
• 링크에 접속하여 public key를 등록합니다.
• 해결 방법 출처
• 링크
64. Pull-Request 해보기
• bitbucket은 merge할 때
특정 액션도 함께 수행되는 편의 기능을 제공.
• bitbucket에서 풀리퀘스트 칸을 클릭한 후,
create pull request를 선택.
65. Pull-Request 해보기
• 병합하기 원하는 브랜치와 대상이 되는 브랜치를 선
택, 나머지는 원하는 대로 기입.
• 원하는 경우 Title에도 이슈 번호를 기재,
풀리퀘스트도 Jira에서 추적되도록 설정.
• 기타
• 옵션: Merge 이후 Branch를 없애고 싶다면 선택.
• Diff나 Commit 내역은 Github과 유사함.
• 내용을 모두 기입했다면
Create Pull Request를 눌러 Pull Request를 생성.
66. Pull-Request 해보기
• 만들어진 Pull-Request 확인.
• Approve, Merge를 클릭
• 팀 프로젝트의 경우 merge에 필요한
Approve 개수를 정할 수도 있을 것.
67. Pull-Request: 이슈도 완료해줘!
• Commit Message 이외에도 여러 동작 설정 가능
• Merge와 함께 실행될 액션 설정
• Transition Issue
• 연동된 Jira의 이슈를 자동으로 완료 상태로
만듦.
• 워크플로우에 따라 여러 상태 선택 가능.
• Close source branch
• 작업하던 브랜치를 자동으로 Close.
70. Recap
• Jira, Confluence, Bitbucket은 무엇이고, 왜 사용하나요?
• Jira는 이슈 상태를 관리할 수 있는 일종의 Todo List와 같다.
• 다양한 형태의 이슈를 관리할 수 있고, 여러 도구들과 호환되는 장점이 있다.
• 3가지 도구를 이용해서 개발은 어떻게 할 수 있나요?
• Jira를 중심으로 이슈를 관리한다.
• 코드 작업이 필요할 땐 Jira에서 Bitbucket을 연동, 브랜치를 만든다.
• 문서화 작업이 필요할 땐 Jira에서 Confluence을 연동하고, 필요할 때 이슈카드에 Confluence 페이지를
추가한다.
• (중요) 필요한 만큼 필요한 기능을 사용한다
72. 참고 자료
• JIRA를 하자! - 쿠키런 : 오븐브레이크의 JIRA 도입기
• 자습서: Confluence Cloud 및 Jira Software Cloud 함께 사용하기
• JIRA 에서 스마트 커밋(Smart commit) 사용하기
• Git and Bitbucket: unauthorized when pushing