GitHub Actions로 DevOps 워크플로 자동화

Susan Sarandon
풀어 주다: 2024-11-11 03:37:02
원래의
750명이 탐색했습니다.

Automate DevOps Workflows with GitHub Actions

작가: 트릭스 사이러스

Waymap 침투 테스트 도구: 여기를 클릭하세요
TrixSec Github: 여기를 클릭하세요


GitHub 작업이란 무엇입니까?

GitHub Actions는 GitHub에 통합된 자동화 도구로, 워크플로, CI/CD 파이프라인, 테스트, 코드 품질 검사는 물론 저장소 내 직접 배포까지 자동화하는 기능을 제공합니다. YAML 파일을 사용하여 워크플로를 정의할 수 있으므로 트리거, 환경 및 작업을 완벽하게 제어할 수 있습니다.


DevOps에 GitHub Actions를 사용하는 이유는 무엇입니까?

  1. GitHub과 통합: GitHub 저장소, 이슈 및 끌어오기 요청과 원활하게 통합됩니다.
  2. 확장 가능한 CI/CD 파이프라인: 다양한 플랫폼에서 빌드, 테스트 및 배포를 실행합니다.
  3. 사용자 정의 가능한 워크플로우: 간단한 작업부터 복잡한 다단계 프로세스까지 귀하의 정확한 요구 사항에 맞는 워크플로우를 정의하세요.
  4. 재사용 가능한 워크플로: 여러 프로젝트에서 재사용 가능한 워크플로와 맞춤 작업을 공유합니다.

GitHub 작업의 주요 구성 요소

  1. 워크플로: .github/workflows 디렉터리에 저장된 YAML 파일에 정의된 자동화된 프로세스입니다.
  2. 작업: 각 워크플로는 동시에 또는 순차적으로 실행할 수 있는 작업으로 구성됩니다.
  3. 단계: 각 작업에는 명령 실행, 스크립트 또는 재사용 가능한 작업이 포함될 수 있는 일련의 단계가 있습니다.
  4. 트리거: push, pull_request, 일정 등 워크플로를 트리거하는 이벤트를 정의합니다.

첫 번째 DevOps 워크플로 설정

새 커밋이 푸시될 때마다 코드를 테스트하고 빌드하기 위한 기본 CI 워크플로를 만드는 과정을 살펴보겠습니다.

  1. 워크플로 파일 만들기

    저장소의 .github/workflows로 이동하여 ci.yml이라는 파일을 생성합니다.

  2. 워크플로 구조 정의

   name: CI Workflow

   on:
     push:
       branches:
         - main
     pull_request:
       branches:
         - main

   jobs:
     build:
       runs-on: ubuntu-latest

       steps:
         - name: Checkout code
           uses: actions/checkout@v3

         - name: Set up Node.js
           uses: actions/setup-node@v3
           with:
             node-version: '16'

         - name: Install dependencies
           run: npm install

         - name: Run tests
           run: npm test

         - name: Build project
           run: npm run build
로그인 후 복사
로그인 후 복사
  1. 작업 흐름 설명
  • 트리거(켜기): 워크플로는 기본 분기를 대상으로 하는 push 또는 pull_request 이벤트에서 트리거됩니다.
  • 작업: 종속성을 설치하고, 테스트를 실행하고, 프로젝트를 빌드하는 단일 빌드 작업이 있습니다.
  • 단계: 각 단계에서는 작업이나 명령을 사용합니다(예: 코드 확인을 위한 actions/checkout, Node.js 설정을 위한 actions/setup-node 및 다양한 npm 명령).

Linting 및 코드 품질 검사 추가

코드 품질을 보장하려면 워크플로에 Linting 단계를 추가할 수 있습니다.

- name: Lint code
  run: npm run lint
로그인 후 복사
로그인 후 복사

종속성 설치 후에 이 단계를 추가하면 파이프라인 초기에 코드 품질 문제를 식별하는 데 도움이 됩니다.


GitHub Actions로 배포 자동화

이제 AWS 또는 Firebase와 같은 클라우드 서비스에 자동화된 배포 단계를 추가해 보겠습니다.

예: Firebase에 배포

  1. Firebase CLI 설정

    먼저 로컬 머신에 Firebase CLI를 설치하고 구성합니다. Firebase login:ci를 사용하여 토큰을 생성하고 GitHub 비밀번호(FIREBASE_TOKEN)로 저장합니다.

  2. 배포 단계 추가

   name: CI Workflow

   on:
     push:
       branches:
         - main
     pull_request:
       branches:
         - main

   jobs:
     build:
       runs-on: ubuntu-latest

       steps:
         - name: Checkout code
           uses: actions/checkout@v3

         - name: Set up Node.js
           uses: actions/setup-node@v3
           with:
             node-version: '16'

         - name: Install dependencies
           run: npm install

         - name: Run tests
           run: npm test

         - name: Build project
           run: npm run build
로그인 후 복사
로그인 후 복사

여기서 need: build를 지정합니다. 즉, 이 배포 작업은 빌드 작업이 성공적으로 완료된 후에만 실행됩니다.


고급 GitHub 작업 팁

  1. 캐싱 사용: 종속성을 캐싱하여 워크플로 속도를 높입니다.
- name: Lint code
  run: npm run lint
로그인 후 복사
로그인 후 복사
  1. 매트릭스 빌드: 매트릭스 전략을 사용하여 여러 버전이나 플랫폼에서 테스트합니다.
   deploy:
     needs: build
     runs-on: ubuntu-latest

     steps:
       - name: Checkout code
         uses: actions/checkout@v3

       - name: Set up Node.js
         uses: actions/setup-node@v3
         with:
           node-version: '16'

       - name: Install dependencies
         run: npm install

       - name: Build project
         run: npm run build

       - name: Deploy to Firebase
         env:
           FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
         run: |
           npm install -g firebase-tools
           firebase deploy
로그인 후 복사
  1. 비밀번호 및 환경 변수: GitHub Secrets에 민감한 정보를 저장하고 ${{ secrets.SECRET_NAME }}를 사용하여 액세스하세요.

워크플로 모니터링 및 디버깅

  • 로그 보기: GitHub Actions의 각 단계는 작업 탭에서 액세스할 수 있는 로그를 생성합니다.
  • 디버그 모드: 자세한 로깅을 위해 값이 true인 비밀에 ACTIONS_STEP_DEBUG를 추가합니다.
  • 오류 알림: 작업 흐름 실패에 대한 알림을 받도록 알림(예: Slack 또는 이메일)을 설정합니다.

재사용 가능한 워크플로

프로젝트가 성장함에 따라 특히 코드 형식 지정이나 보안 검색과 같은 작업의 경우 YAML 파일에서 Workflow_call을 정의하고 여러 저장소에서 재사용하여 재사용 가능한 워크플로를 만드는 것을 고려해 보세요.


마무리

GitHub Actions로 DevOps 워크플로를 자동화하면 생산성이 향상되고 인적 오류가 줄어들며 더욱 강력한 CI/CD 파이프라인이 생성됩니다. 워크플로가 백그라운드에서 원활하게 실행되므로 개발자는 배포 작업에 신경쓰지 않고 코드 작성에 더 집중할 수 있습니다. DevOps 여정에서 GitHub Actions의 잠재력을 극대화하려면 테스트부터 시작해 점차적으로 배포 및 모니터링으로 확장하세요.


이 가이드는 GitHub Actions를 사용하여 프로젝트를 구축, 테스트 및 배포하기 위한 기초를 제공합니다. 일단 익숙해지면 완전히 최적화된 DevOps 파이프라인을 위한 사용자 지정 작업, 통합 및 고급 자동화를 통해 더욱 확장할 수 있습니다.

~트릭스섹

위 내용은 GitHub Actions로 DevOps 워크플로 자동화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿