✔️Github 6

[Git] git submodule

배경 여러 프로젝트(main project)에서 사용하는 공통 모듈(sub project)이 있을 때, main project와 sub project들은 어떻게 git으로 관리할 수 있을까? 이 sub project는 어느 repo에 저장이 되는 것이 좋을까? 이럴 때, sub project가 독립적인 Repo에서 버전관리 되고, 이 모듈을 사용할 프로젝트인 main project들에는 원하는 폴더에 이 sub project 들이 연결되어 있어서 사용할 수 있으면 좋을 것이다. 이런 기능 뿐만 아니라, sub project에 여러 버전이 있을 때, 특정 버전과 이를 사용할 main project의 디렉토리를 연결시켰다가, 또 다른 버전이 준비되었을 때, 손 쉽게 다른 버전으로 변경할 수 있다면 버전 관리..

211021) docker-compose --exit-code-from

name: ML application unittest on: push: branches: [test] jobs: test: runs-on: [self-hosted, gpu] steps: - uses: actions/checkout@v2 - name: ML inference code Unittest run: docker-compose -f docker-compose-unittest.yml up 이런 github actions workflow script가 있다고 하자. 그런데 docker-compose 을 통해 실행된 unittest가 실패해서 FAILED (errors=1) [container] exited with code 1 으로 실행이 종료되어도 docker-compose가 정상적으로 작동하였다면 ..

211012) 하던 작업 임시 저장 및 적용 git stash, 원격 저장소와 local저장소의 소스코드를 일치 git fetch, git reset

하던 작업을 임시로 저장해두고 나중에 그대로 적용시키고 싶을 때가 있다. 예를 들면 A branch에서 신나게 작업을하고 있는데 알고보니 B branch에서 해야했던 작업일 경우 또는 하던 작업을 멈추고 잠시 브랜치를 바꿔야하는데 작업 중인 것이라 commit을 할 만한 것은 아닐 때 최근 이런 경우가 생겨 git stash를 사용해 보았다. git stash git stash apply [Git] git stash 명령어 사용하기 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io git stash (feat. 내가 왜 마스터 브랜치에 있지) 개인적으로 프로젝트를 하다 보면, 브랜치를 생성하지 않은 채로 (그러니까 실..

[Github, CI/CD] Github Actions self hosted runner with own GPUs

Github Actions self hosted runner with own GPUs Github Actions는 Gtihub을 기반으로 하는 CI/CD, 여러 개발 Workflow 자동화 툴이다. 그런데 사용하다 보면 Github Actions workflow를 Github-hosted runner에서만 실행시키는데 한계가 있는 경우가 있다. A GitHub-hosted runner is a virtual machine hosted by GitHub with the GitHub Actions runner application installed. 구체적으로 어떤 경우가 있을 수 있는지 'ML application을 위한 Workflow를 Github Actions로 실행하고자 할 때'를 예시로 살펴보자면..

Dev/DevOps, Infra 2021.10.10

[Github, CI/CD] 특정 파일이나 폴더에 대해서만 Github Actions가 trigger되는 방법

Dockerfile이 변경되었을 때만 build를 다시해서 ECR에 push 하는 작업이 필요했다. Github Actions에서 이렇게 변경 사항이 있는 아티팩트에 대해서만 액션이 트리거되어 CI/CD를 해주는 방법은 paths selector를 사용하는 것이다. name: Deploy Analyzer image to Amazon ECR on: push: paths: # HERE! - "Dockerfile" # HERE! branches: [main, release] jobs: deploy: name: Deploy runs-on: ubuntu-latest 이 방법은 monorepo에서 github actions로 CI/CD를 구성하고자 할 때도 유용하게 사용할 수 있다. https://medium.co..

Dev/DevOps, Infra 2021.08.09

[DevOps] CI/CD 파이프라인 구축하기

1. CICD 파이프라인을 어떻게 구축하고 있을까? 몇 기업들의 빌드/배포 자동화 파이프라인 구축에 대해서 알아보았고, 그 중 가장 자세하고, 도움이 되었던 글은 하루에 1000번 배포하는 조직 되기 | 뱅크샐러드 이다. 파이프라인 재구축 전 상황과 pain point, 그래서 어떻게 변경했는지, 현재 어떤 식으로 운영되고 있는지가 자세히 설명되어져 있었기 때문이다. 예전에는 아래와 같은 AWS의 서비스를 사용하여 CodeBuild: 소스 코드를 컴파일하는 단계에서부터 테스트 후 배포까지의 단계를 지원하는 CI 서비스. Github과의 연결을 통해 빌드를 시작할 수 있으며 Codepipeline과 연결하여 커밋이 발생할 때마다 자동으로 빌드를 수행할 수 있음. 코드에 대한 빌드와 테스트 또한 사전 구성된..

Dev/DevOps, Infra 2021.05.16