레이블이 github인 게시물을 표시합니다. 모든 게시물 표시
레이블이 github인 게시물을 표시합니다. 모든 게시물 표시

2023년 4월 16일 일요일

github action 란 무엇인가? (기초)

 github action

git에 소스를 올리는 사람이라면, github 메뉴중에 github action 이라는 메뉴를 보았을 것입니다.

메뉴 이름을 봤을 때 대충 예상되는 동작이지만 간략하게 정리해봤습니다.


기능

github에 소스 반영시 어떤 동작(build, test, deploy 등)을 할 수 있도록 해줍니다.

일종의 코드 commit hook 같은 기능으로 생각하면 됩니다.

코드 반영시에만 동작이 되는것은 아니고 여러가지 event를 설정 할 수 가 있습니다.


준비물

github action은 서버를 필요로 합니다. 

github에서 제공해주는 서버를 사용하는 방법과 self host PC 를 이용하는 두가지 방법이 있으며, github 서버는 비용이 들게 됩니다.

스크립트 내에 runs-on 부분에 해당 정보를 기록 하게 되는데 다음 링크를 참고하면 됩니다.

https://docs.github.com/ko/actions/using-github-hosted-runners/about-github-hosted-runners

github 등급 정책에 따라 일부 무료로 사용하는 구간이 있습니다.

현재는 GitHub Free인 경우 500MB에 2000분 무료입니다.

github action을 사용해보면 한번 동작할때 시간 정보가 찍히게 되는데 해당 시간이 누적되어 정해진 시간을 초과하면 비용을 내는 방식 입니다. 여기에 비용 배율이 있는데 윈도우는 2, Mac 은 10을 곱해줍니다. 아무래도 보유한 운영체제 서버의 비용 때문이지 않나 하는 생각이 듭니다. 즉 linux를 사용하면 2000분 무료가 되지만 윈도우를 사용했을때 1000분 무료가 됩니다.

Included storage and minutes

Note: Entitlement minutes cannot be used for Windows and Ubuntu runners over 2-cores. These runners will always be charged for, including in public repos. For more information, see "About billing for GitHub Actions."

ProductStorageMinutes (per month)
GitHub Free500 MB2,000
GitHub Pro1 GB3,000
GitHub Free for organizations500 MB2,000
GitHub Team2 GB3,000
GitHub Enterprise Cloud50 GB50,000

Jobs that run on Windows and macOS runners that GitHub hosts consume minutes at 2 and 10 times the rate that jobs on Linux runners consume. For example, using 1,000 Windows minutes would consume 2,000 of the minutes included in your account. Using 1,000 macOS minutes, would consume 10,000 minutes included in your account.

Minute multipliers

Operating systemMinute multiplier
Linux1
Windows2
macOS10

셀프 호스트는 설정의 Runner 에서 설정하는 부분이 있습니다. 


 self host를 사용하게 되면 PC를 계속 켜놔야 합니다. 원리는 특정 SW를 설치하고 접속하면 github에서 내려오는 명령을 수행하는 방식입니다.


간단 사용법

Action 을 선택하고 아래쪽에 있는 적당한 configure 버튼을 누르면 해당 내용을 바탕으로 yaml 파일이 하나 만들어 집니다.


yaml 파일명은 중요하지 않고, 안에 있는 스크립트 내용이 중요합니다. 오른쪽에 간단 설명이 있으니 보고 편집을 하면 됩니다.

최종적으로 submit 하지 않으면 적용이 되지 않습니다.


yaml 내용은 event(on) 조건과 jobs(해야하는 동작들)에 대해서 구성합니다.






2021년 10월 2일 토요일

github change public<->private (github 전환)


github settings에 제일 아래 Danger Zone 에 change visibility 에 있습니다.


Change repository visibility

This repository is currently public.







2017년 7월 29일 토요일

git 리모트 저장소 관련 간단 예제

git 리모트 저장소 관련 간단 예제


리모트 저장소 확인하기
=====================
$ git remote -v
origin git://github.com/test/test.git
=> 리모트 저장소의 단축 이름을 보여줍니다.

리모트 저장소 추가하기
=====================
$ git remote add pb git://github.com/test/test2.git
=> pb 저장소를 추가
$ git remote -v
origin  git://github.com/test/test.git
pb  git://github.com/test/test2.git


리모트 저장소 삭제하기
======================
$ git remote rm origin
=>origin 저장소 정보 삭제

리모트 저장소 이름을 바꾸기
===========================
$ git remote rename pb origin
=>pb 의 이름을 origin으로 변경

2017년 7월 17일 월요일

git에 대한 생각 정리


git에 대한 생각 고전적인 버전 관리 툴과 비슷하다고 보는데, 대부분의 책이나 문서에서는 엄청 기능이 많고 분산 관리툴임을 장점으로 내세우고 있습니다. 기능이 많다는건 장점으로 보기 어려운것 같습니다. 복잡한 툴로 인식 될 수 있기 때문입니다.

commit시 로컬에서 버전 관리가 되고 push시에 서버 반영하는 두가지 형태로 되어 있으며 결국 server에 반영이 필요하다는 점을 빼놓고는 기존 버전 관리툴과 크게 다르지 않다고 보면됩니다.

정리하자면 흐름은 아래와 같습니다.

파일 ----- stage ------ local repository(로컬 저장소) ----- remote repository(원격 저장소)

고전적인 cvs, svn에서는 stage, local repository 단계가 없다고 보면 됩니다.

cvs가 파일 각각의 버전으로 전체적인 프로젝트 관리에 힘들었다면, svn은 하나의 submit이 전체 버전에 영향을 미치게되어 전체 project의 버전이 올라기는 방식입니다. git는 그런면에서는 svn과 전체적인 버전 관리가 비슷하다고 볼 수 있습니다. 하지만 git는 파일 단위의 변화를 가지고 있기 때문에 history관리를 위해서는 많은 용량을 소모하지만 속도면에서는 이득을 보게 됩니다.






2015년 10월 16일 금요일

github 처음 사용기 git 사용기


git 사용하기

github에서 직접 파일을 올릴 수도 있습니다. (+ 를 누르면 새파일 추가됨, 편집도 가능)
파일이 많거나 하면 결국 local에서 작업해보고 올리는 작업을 해야합니다.

로컬로 해당 프로젝트를 가져오기 위한 방법입니다.
https://help.github.com/articles/set-up-git/#platform-windows

로컬에 git툴을 설치해야 합니다.
툴 다운 -> 툴다운 후 실행시키면 다시 어플을 받아옴
https://desktop.github.com/

git에 대해 좀더 자세히 알려면 아래 링크를 둘러봅니다.
http://git-scm.com/book/en/v2/Getting-Started-Git-Basics

로컬에 git툴을 설치하면 2개의 icon이 만들어 집니다. 하나는 GitHub, Git Shell 인데, Git Shell에서 git 명령을 내릴 수 있습니다.

서버의 주소는 https://github.com/donarts/talkcalc.git 이런 형태로 나오며,
github page 오른쪽에서 link주소를 구할 수 있습니다.

로컬에 소스를 가져오는 git명령은 clone이 됩니다.
git clone https://github.com/donarts/talkcalc.git talkcalc_work
위와 같이 할 수 있는데 마지막 이름은 로컬 저장할 로컬 repo 디렉토리 이름입니다. 서버 repo 이름과 같을 필요는 없습니다.



처음 소스 올리기
clone 후에 최소 소스 올릴려면 작업한 소스를 git clone한 폴더쪽으로 옮기던지 복사하던지 합니다.
beyond Campare 툴을 이용해서 복사하였습니다.




git init
그 이후에 cd talkcalc_work 폴더로 이동하였습니다.
거기에서 git add * 하여 추가된 파일을 반영준비 상태로 만듭니다.


커밋 내용을 구성합니다.
git commit -m "내용"


서버에 반영합니다.
git push origin master


github에 접속하여 제대로 반영되었는지 확인 합니다.
완벽하군요. 제대로 반영되었습니다.



2015년 10월 8일 목요일

github 가입하기

github 가입기

가입전에 준비해야할 것
- email : 가입시 확인을 위해서 필요합니다.

github.com에 방문해서,
ID와 email과 비밀번호를 적고 Sign up for GitHub 버튼을 누릅니다.
당연한 얘기지만 email의 비밀번호를 적는게 아니라 github에서 사용할 비밀 번호를 적습니다.


적은 이메일로 아래의 메일이 옵니다.
verify email address 버튼을 눌러줍니다.


두번째 단계인 finish sign up 버튼을 누르면 되는데
plan을 결정해야하는데 공개라면 무료로 사용가능 합니다. 무료를 선택해 줍니다.


그 다음에 repository를 만들어 줍니다.
쉽게 말해서 프로젝트 단위나 작업 단위의 보관소와 같은 개념입니다.



Repository 이름을 정하고 대충 내용을 정한뒤 Create 버튼을 누르면 됩니다.
talkcalc라는 프로젝트의 소스를 올릴꺼라서 Android로 작업하였습니다.



자 여기까지 입니다.
아래 주소에 방문하면됩니다.

https://github.com/donarts/talkcalc