[ 11부 ] GraphQL, Typescript 및 React를 사용하여 Twitter 복제본 만들기( Github 작업 흐름 )

안녕하세요 여러분 ;).

참고로 저는 이 챌린지를 하고 있습니다 ;) : Tweeter challenge

Db diagram

얼마 전 팀원과 함께 챌린지를 했습니다. 누군가와 함께 프로젝트를 하는 것은 처음이었습니다. 나는 그것에 대해 이야기했다. 챌린지here를 찾을 수 있습니다. 이 프로젝트 이후로 저는 프로젝트 작업 방식을 변경했습니다. 내가 말하려는 내용에 특별한 것은 없지만 아마도 여러분 중 일부는 유용한 것을 발견할 것입니다 ;).

먼저 Github에 저장소를 생성하는 것으로 시작합니다. 원하는 경우 개인 저장소를 만들 수 있습니다. 그런 다음 Github 문제를 사용하여 작업할 기능을 계획합니다. 제 간단한 개인 작업 흐름은 다음과 같습니다.
  • Open a new issue on Github -> 예: "Feat: add some functions"
  • 내 로컬 저장소에 새 분기 생성

  •   git checkout -b add_some_functionality
    


  • 기능이 완료되면 저장소로 푸시합니다.

  •   git push origin add_some_functionality
    


  • 그런 다음 풀 리퀘스트를 열고 메인 브랜치
  • 에 병합합니다.

    Github 작업 흐름



    그것이 Github Workflow가 작동하는 곳입니다. 나는 Github Workflow를 처음 접했기 때문에 내가 당신에게 완전한 설명을 줄 것이라고 기대하지 마십시오. 더 자세한 설명을 원하시면 dev.to에서 많은 리소스를 찾을 수 있습니다 ;).

    몇 가지 테스트를 작성했기 때문에 브랜치를 실제로 내 메인 브랜치에 병합하기 전에 테스트를 실행하는 것이 흥미로울 수 있습니다. 그렇기 때문에 새 기능 분기를 병합하기 전에 테스트를 실행하도록 Github를 설정합니다.

    .github/workflows/pr_tests.yaml

    name: Run tests on pull request
    on:
      push:
        branches:
          - main
      pull_request:
        types: [opened, synchronize]
    
    jobs:
      test:
        runs-on: ubuntu-latest
        # Service containers to run with `container-job`
        services:
          # Label used to access the service container
          postgres:
            # Docker Hub image
            image: postgres
            # Provide the password for postgres
            env:
              POSTGRES_PASSWORD: root
            options: >-
              --health-cmd pg_isready
              --health-interval 10s
              --health-timeout 5s
              --health-retries 5
            ports:
              # Maps TCP port 5432 on service container to the host
              - 5432:5432
    
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v1
            with:
              node-version: '14.x'
          - run: yarn
          - name: Run the tests
            run: yarn test
            env:
              NODE_ENV: test
              PORT: 3000
              JWT_SECRET: test-secret
              DB_HOST: localhost
              DB_NAME: postgres
              DB_USER: postgres
              DB_PASSWORD: root
    


    메인 브랜치에 풀 리퀘스트를 할 때 이 워크플로를 실행하겠습니다. 테스트를 실행하려면 PostgreSQL 데이터베이스가 필요하므로 이에 대한 서비스를 추가합니다. 도커 이미지를 설치합니다. 그런 다음 노드를 설치하고 테스트를 실행하는 명령을 추가합니다.

    이제 풀 요청을 하면 테스트가 자동으로 실행되고 오류가 있으면 브랜치를 병합하지 않습니다.



    작업 탭으로 이동하면 실행 중인 작업이 표시됩니다.

    기능 분기가 병합되면 로컬 리포지토리로 돌아갑니다.

    git checkout main
    git pull
    


    일반적으로 내 지점도 삭제합니다.

    git branch -D feature_branch
    


    내가 말했듯이 여기에는 예외가 없지만 혼자 일하면서 오랫동안 메인 브랜치 만 사용했습니다 ... 이렇게 진행하면 훨씬 더 효율적이고 체계적 일 수 있습니다 ;). 초보자라면 몇 가지 아이디어를 얻을 수 있을 것입니다 ;).

    오늘은 그게 다야.

    다음 편에서 만나요 ;).

    좋은 웹페이지 즐겨찾기