끊임없이 진화하는 소프트웨어 개발 환경에서는 코드 품질과 일관성을 유지하는 것이 중요합니다. 코드베이스를 깔끔하게 유지하고 모범 사례를 준수하는 가장 효과적인 방법 중 하나는 서식 지정 및 Linting 프로세스를 자동화하는 것입니다. 이 블로그 게시물에서는 Python 프로젝트의 코드 형식 지정 및 Linting을 자동화하도록 설계된 GitHub Actions 워크플로를 설정하는 방법을 안내합니다. 구성과 관련 단계를 살펴보고 이를 통해 시간을 절약하고 코드 오류를 줄이는 방법을 살펴보겠습니다.
GitHub Actions는 GitHub 저장소 내에서 직접 워크플로를 자동화할 수 있는 강력한 도구입니다. 테스트 실행부터 애플리케이션 배포까지 GitHub Actions는 푸시, 풀 요청 등과 같은 이벤트를 기반으로 다양한 작업을 처리할 수 있습니다. 이 예에서는 GitHub Actions를 사용하여 코드 형식 지정 및 Linting을 자동화하는 데 중점을 둘 것입니다.
Python 코드 서식 지정 및 Linting을 위한 GitHub Actions 워크플로를 자세히 살펴보세요.
name: Format and Lint on: push: branches: - master pull_request: branches: - master jobs: format-and-lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' # Specify the Python version to use - name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8 - name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive . - name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Check for changes git diff --exit-code || { echo "Changes detected. Committing changes..." # Configure Git user git config --global user.name "github-actions" git config --global user.email "actions@github.com" # Stage all changes git add . # Commit changes git commit -m "Apply code formatting and linting fixes" # Push changes git push origin HEAD }
on: push: branches: - master pull_request: branches: - master
마스터 브랜치에 대한 푸시 및 풀 요청 시 워크플로가 트리거됩니다. 이렇게 하면 메인 브랜치 또는 풀 요청에 대한 모든 변경 사항이 자동으로 형식화되고 린트됩니다.
jobs: format-and-lint: runs-on: ubuntu-latest
작업은 최신 버전의 Ubuntu에서 실행됩니다. 서식 지정 및 Linting이 발생하는 환경입니다.
- name: Checkout code uses: actions/checkout@v3
이 단계에서는 저장소 코드를 확인하여 후속 단계에서 해당 코드에 액세스하고 수정할 수 있도록 합니다.
- name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9'
이 단계에서는 워크플로 환경에 Python 3.9를 설정합니다. 프로젝트에 사용되는 Python 버전과 일치하도록 이를 조정하세요.
- name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8
여기에는 서식 지정 및 Linting을 위한 필수 Python 패키지인 black, isort 및 autopep8이 설치되어 있습니다.
- name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive .
이 단계에서는 검정을 사용하고, 가져오기 정렬을 위해 isort를 사용하고, 추가 서식 조정을 위해 autopep8을 사용하여 코드 서식을 적용합니다.
- name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git diff --exit-code || { echo "Changes detected. Committing changes..." git config --global user.name "github-actions" git config --global user.email "actions@github.com" git add . git commit -m "Apply code formatting and linting fixes" git push origin HEAD }
형식 지정 또는 Linting 변경이 이루어지면 이 단계에서 이를 커밋하고 저장소로 다시 푸시합니다. 인증을 위해 GitHub 토큰을 사용하고 커밋을 위해 일반 사용자로 Git을 구성합니다.
형식 지정 및 Linting을 위한 GitHub Actions 워크플로를 구현하는 것은 프로젝트 전체에서 코드 품질과 일관성을 유지하는 현명한 방법입니다. 이러한 프로세스를 자동화하면 형식 문제보다는 코드 작성에 더 집중할 수 있습니다. 여기에 제공된 워크플로는 견고한 기반 역할을 하지만 프로젝트의 특정 요구 사항에 따라 추가로 사용자 정의할 수 있습니다. 지금 바로 이 워크플로우를 저장소에 통합하고 자동화된 코드 품질 관리의 이점을 경험해 보세요!
위 내용은 GitHub Actions를 사용하여 Python 코드 형식 지정 및 Linting의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!