728x90 반응형 CD8 [Cloud] CD: Github Actions - TEST & act Github actions act 자동 배포 과정도 테스트를 진행하면서 개발을 하게 되는데, 테스트를 해보기위해 계속해서 push 를 하거나 pull request 를 만드는 것은 비효율적이다. 이런 부분들을 자동화 하기위해서 act 를 사용한다. act 는 Github actions 워크플로우를 로컬의 개발환경에서 실행할 수 있게 해주는 오픈소스 도구이다. act 는 도커를 사용하기 때문에 도커가 깔려 있어야 하며 아래의 장점들을 가지고 있다. 디버깅 : 푸시하면서 디버깅 할 필요 없음 빠른 반복 : 원격 실행을 기다릴 필요가 없음 https://github.com/nektos/act GitHub - nektos/act: Run your GitHub Actions locally 🚀 Run your Gi.. Dev./Github Actions 2023. 8. 24. [Cloud] CD: Github Actions - workflow_run & Dependency workflow_run & Dependency workflow 의 dependency 설정 (조건부 실행) workflow_dispatch 로 직접 실행시키게 되면, call-workflow step 에 따라 정해진 workflow 가 실행된다. # lesson4_caller.yml name: call workflow on: workflow_dispatch: jobs: get-workflow-name: name: echo workflow name runs-on: ubuntu-latest steps: - run: echo "This workflow is ${{ github.workflow }}" call-workflow: uses: ./.github/workflows/lesson4.yml strategy:.. Dev./Github Actions 2023. 8. 23. [Cloud] CD: Github Actions - Mutiple workflow Multiple workflow workflow 를 여러개를 만들다보면 push 할 때마다 다른 yml 파일들 때문에 계속해서 배포되는 작업이 이루어지는데, 이를 각각의 workflow 별로 핸들링하거나 연관있는 것들 끼리 핸들링 할 수 있게 해보자. lesson4.yml 파일 작성 # lesson4.yml name: resuable workflow on: workflow_call: jobs: greeting: name: greeting runs-on: ubuntu-latest steps: - name: greeting run: echo "Hello, Stranger"ßßå 이후 push 하면 기존에 있던 yml 파일이 있기 때문에 자동으로 배포가 됨 그래서 필요한 내용이 업데이트 될 때마다 배포가 되게.. Dev./Github Actions 2023. 8. 23. [Cloud] CD: Github Actions - 환경변수, docker-compose workflow 내 환경변수 설정 및 docker-compose.prod.yml 수정 repository 가 sercret 에 있던걸 variables 로 변경 https://docs.github.com/en/actions/learn-github-actions/variables#using-the-env-context-to-access-environment-variable-values name: CD using Docker Image on: push: branches: - main env: # 자주 사용하는 부분은 묶어서 사용할 수 있다. IMAGE_TAG: ${{ vars.NCP_CONTAINER_REGISTRY }}/lion-app:latest jobs: build_push_to_ncp: name: p.. Dev./Github Actions 2023. 8. 21. [Cloud] CD: Github Actions - ssh, git pull ssh 로 접속해서 git pull 받기 ssh 로 접속하기 위해서는 키가 필요한데 이 부분은 github 에 저장해두고 사용한다. # lession2.yml name: CD by git pull on: workflow_dispatch: # from now on, this file is not in automation process # push: # branches: # - main jobs: deployment: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: git pull via SSH uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.HOST }} username: ${{ se.. Dev./Github Actions 2023. 8. 19. [Cloud] CD: Github Actions - docker build docker 파일을 actions 로 빌드해보기 이번에는 push 가 되었을 때 도커파일로 장고 앱이 빌드가 되고 이미지가 출력되는 워크플로우를 만들어보자 기존에 사용하던 명령어 docker run --name lion-app ... docker images 참고용 .github/workflow/lesson1.yml name: lesson1 on: # if the below events are on, push: # push event pull_request: # pull_request event jobs: # these below tasks are on echo-event: name: echo event runs-on: ubuntu-latest steps: - name: get event run: ech.. Dev./Github Actions 2023. 8. 18. [Cloud] CD: Github Actions - workflow push & pull-request 알림 workflow 만들기 github actions → using workflow 로 가서 어떻게 사용하는지 확인한다. workflow 작성 # lesson1.yml name: lesson1 on: push: pull_request: jobs: echo-event: name: echo event runs-on: ubuntu-latest steps: - name: get event run: echo "This event is ${{github.event_name}}" push 를 하면 github actions 에 해당 내용들이 기록되어진다. 이번에는 pull-request 를 확인해보자 dev branch 를 파서 새롭게 업데이트 한 후 push 를 하면, dev_.. Dev./Github Actions 2023. 8. 18. [Cloud] CD: Continuous Deployment (feat. github actions) NCP 로 배포를 해보면서 자동화의 필요성을 계속해서 알게되었다. 업데이트 될 때마다 테스트를 하고 자동으로 뿌려주는 과정을 설계하는 CD, Continuous Deployment 를 적용하려면 뭘 알아야 할까 ? CD 란, 소프트웨어 개발에서의 자동화된 프로세스로, 변경 사항을 자동으로 제품환경에 배포한다. 현업에서는 CI/CD 파이프라인을 이용해 테스트, 빌드, 배포 등을 자동화 하며, Jenkins, GitLab CI, CircleCI 등의 도구를 사용한다. Github actions github actions 는 github 에서 제공하는 CI/CD 도구로, 소프트웨어 개발 워크플로우 자동화에 사용된다. commit, push, pull request 와 같은 github 이벤트에 응답하여 빌드,.. Dev./Github Actions 2023. 8. 17. 이전 1 다음 728x90 반응형