+6

Hướng Dẫn Chi Tiết Về Các Tệp Tin Trong Thư Mục .github

Hướng Dẫn Chi Tiết Về Các Tệp Tin Trong Thư Mục .github

Thư mục .github trong kho lưu trữ GitHub là nơi bạn có thể cấu hình nhiều tính năng để tùy chỉnh và tối ưu hóa quy trình phát triển của dự án. Bài viết này sẽ hướng dẫn bạn qua các tệp tin phổ biến trong thư mục .github, cùng với cách cấu hình và ví dụ cụ thể cho từng loại tệp tin.

1. Thư Mục .github Là Gì?

Thư mục .github là một thư mục đặc biệt trong kho lưu trữ GitHub giúp bạn cấu hình các tính năng và quy trình tự động hóa. Nó không chỉ giúp quản lý quy trình làm việc mà còn cải thiện khả năng cộng tác trong dự án.

2. Cấu Hình GitHub Actions: .github/workflows

GitHub Actions là một công cụ mạnh mẽ cho phép bạn tự động hóa các quy trình trong dự án của mình, như kiểm tra mã nguồn, triển khai ứng dụng, và nhiều hơn nữa. Các tệp cấu hình Actions được đặt trong thư mục .github/workflows.

Ví Dụ: Workflow Kiểm Tra Mã Nguồn

Tạo một tệp tin .github/workflows/ci.yml với nội dung sau để thiết lập một workflow kiểm tra mã nguồn bằng Node.js:

name: CI

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: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

Giải thích:

  • name: Tên của workflow.
  • on: Sự kiện kích hoạt workflow, chẳng hạn như push hoặc pull_request.
  • jobs: Các nhiệm vụ sẽ được thực hiện trong workflow, ví dụ như kiểm tra mã nguồn.

3. Tạo Mẫu Issue và pull request: .github/ISSUE_TEMPLATE.github/PULL_REQUEST_TEMPLATE

GitHub cho phép bạn tạo các mẫu để chuẩn hóa các Issue và pull request, giúp cải thiện quy trình cộng tác.

Ví Dụ: Mẫu Issue

Tạo tệp .github/ISSUE_TEMPLATE/bug_report.md:

---
name: Bug Report
about: Report a bug in the project
title: "[BUG] Issue Title"
labels: bug
assignees: ''

---

**Mô Tả Vấn Đề:**

Mô tả rõ ràng về vấn đề mà bạn gặp phải.

**Bước Để Tái Tạo:**

1. Bước 1
2. Bước 2
3. ...

**Kết Quả Mong Đợi:**

Mô tả những gì bạn mong đợi sẽ xảy ra.

**Kết Quả Thực Tế:**

Mô tả những gì thực tế đã xảy ra.

Ví Dụ: Mẫu Pull Request

Tạo tệp .github/PULL_REQUEST_TEMPLATE.md:

---
name: Pull Request
about: Create a pull request to merge changes
title: "[FEATURE] Add new feature"
labels: enhancement
assignees: ''

---

**Mô Tả:**

Mô tả những thay đổi được thực hiện trong pull request này.

**Kiểm Tra:**

- [ ] Mã nguồn đã được kiểm tra
- [ ] Tài liệu đã được cập nhật

**Liên Kết Đến Vấn Đề:**

Liên kết đến các vấn đề liên quan nếu có.

4. Cấu Hình Tài Trợ: .github/FUNDING.yml

Nếu bạn muốn nhận hỗ trợ tài chính cho dự án của mình, bạn có thể cấu hình tệp FUNDING.yml.

Ví Dụ: Cấu Hình Tài Trợ

Tạo tệp .github/FUNDING.yml:

github:
  sponsor: your-github-username

Giải thích:

  • github: Cấu hình liên kết tài trợ qua GitHub Sponsors.

5. Hướng Dẫn Đóng Góp: .github/CONTRIBUTING.md

Tệp CONTRIBUTING.md cung cấp hướng dẫn cho những người muốn đóng góp vào dự án của bạn.

Ví Dụ: Hướng Dẫn Đóng Góp

Tạo tệp .github/CONTRIBUTING.md:

# Hướng Dẫn Đóng Góp

Cảm ơn bạn đã quan tâm đến việc đóng góp cho dự án của chúng tôi! Dưới đây là hướng dẫn để giúp bạn bắt đầu.

## Quy Tắc Đóng Góp

1. **Kiểm tra vấn đề hiện có**: Trước khi tạo một pull request, hãy kiểm tra các vấn đề đã được báo cáo.
2. **Tạo một pull request rõ ràng**: Đảm bảo mô tả rõ ràng các thay đổi trong pull request của bạn.

## Cách Đóng Góp

1. Fork kho lưu trữ này.
2. Tạo một nhánh mới cho các thay đổi của bạn.
3. Thực hiện thay đổi và kiểm tra chúng.
4. Tạo một pull request để tích hợp các thay đổi của bạn.

6. Tùy Chỉnh Quy Trình Triển Khai: .github/SECURITY.md

Tệp SECURITY.md cho phép bạn cung cấp thông tin về chính sách bảo mật của dự án, cách báo cáo lỗ hổng bảo mật và các biện pháp bảo vệ dữ liệu.

Ví Dụ: Cấu Hình Bảo Mật

Tạo tệp .github/SECURITY.md:

# Chính Sách Bảo Mật

Chúng tôi cam kết bảo vệ dữ liệu của bạn và bảo mật hệ thống. Nếu bạn phát hiện bất kỳ lỗ hổng bảo mật nào, vui lòng báo cáo chúng ngay lập tức.

## Cách Báo Cáo

- Gửi email tới: security@example.com
- Mô tả chi tiết về lỗ hổng và cách tái tạo nó.
- Chúng tôi sẽ xem xét và phản hồi bạn trong thời gian sớm nhất.

## Chính Sách Phản Hồi

Chúng tôi sẽ cập nhật trạng thái lỗ hổng và thông báo các bản sửa lỗi qua email.

7. Cấu Hình Phản Hồi Tự Động: .github/CODEOWNERS

Tệp CODEOWNERS cho phép bạn chỉ định các cá nhân hoặc nhóm chịu trách nhiệm xem xét các yêu cầu kéo hoặc vấn đề trong các thư mục cụ thể.

Ví Dụ: Tạo Tệp CODEOWNERS

Tạo tệp .github/CODEOWNERS:

# Chỉ định nhóm và người dùng cho các thư mục cụ thể

# Toàn bộ kho lưu trữ
* @owner-team

# Thư mục src/ thuộc về nhóm phát triển chính
/src/ @dev-team

# Các tệp cấu hình thuộc về nhóm DevOps
/config/ @devops-team

Giải thích:

  • * @owner-team: Chỉ định nhóm chính sẽ xem xét tất cả các yêu cầu kéo.
  • /src/ @dev-team: Chỉ định nhóm phát triển chính xem xét các thay đổi trong thư mục src/.

8. Đặt Thông Tin Về Đóng Góp: .github/RELEASES.md

Tệp RELEASES.md có thể được sử dụng để ghi lại các thông tin liên quan đến các phiên bản phát hành của dự án.

Ví Dụ: Ghi Chép Phiên Bản

Tạo tệp .github/RELEASES.md:

# Ghi Chép Phiên Bản

## Phiên bản 1.0.0 (Ngày phát hành: YYYY-MM-DD)

- Tính năng mới:
  - Tính năng A
  - Tính năng B
- Cải tiến:
  - Cải tiến A
- Sửa lỗi:
  - Lỗi A

## Phiên bản 0.9.0 (Ngày phát hành: YYYY-MM-DD)

- Tính năng mới:
  - Tính năng C
- Cải tiến:
  - Cải tiến B

Giải thích:

  • Phân loại các thay đổi theo loại (tính năng mới, cải tiến, sửa lỗi).
  • Cung cấp mô tả chi tiết về các thay đổi trong từng phiên bản.

9..github/scripts/ Là Gì?

Thư mục .github/scripts/ không phải là một tính năng chính thức của GitHub, nhưng nó có thể được sử dụng để lưu trữ các script tùy chỉnh phục vụ cho các mục đích tự động hóa hoặc CI/CD. Đây là một cách hữu ích để tổ chức các script hỗ trợ quy trình phát triển của bạn.

Thư mục .github/scripts/ là một nơi để bạn lưu trữ các tập tin script mà bạn muốn sử dụng trong các quy trình tự động hóa, kiểm tra, hoặc triển khai. Bạn có thể tạo thư mục này để giữ cho kho lưu trữ của bạn gọn gàng và có tổ chức hơn khi làm việc với nhiều script khác nhau.

Các Sử Dụng Chính

  1. Script Hỗ Trợ CI/CD: Sử dụng các script này để thực hiện các tác vụ tự động hóa liên quan đến quy trình tích hợp liên tục (CI) và triển khai liên tục (CD), như kiểm tra mã nguồn, xây dựng ứng dụng, hoặc triển khai lên môi trường sản xuất.

  2. Script Quản Lý Môi Trường: Lưu trữ các script quản lý môi trường, cấu hình hệ thống, hoặc thiết lập môi trường phát triển.

  3. Script Hỗ Trợ Tự Động Hóa: Các script có thể được sử dụng để tự động hóa các tác vụ quản lý dự án, như tạo báo cáo, quét mã nguồn, hoặc chạy các công cụ phân tích.

Cấu Trúc Thư Mục

Dưới đây là cấu trúc cơ bản của thư mục .github/scripts/:

.github/
└── scripts/
    ├── build.sh
    ├── deploy.sh
    ├── test.sh
    └── utilities.py

Ví Dụ Cụ Thể

1. Script Xây Dựng (build.sh)

Tạo một tệp build.sh để tự động hóa quy trình xây dựng ứng dụng:

#!/bin/bash

# Tạo thư mục build nếu chưa có
mkdir -p build

# Xây dựng ứng dụng
echo "Building the application..."
npm run build

# Di chuyển tệp xây dựng vào thư mục build
mv dist/* build/
echo "Build completed successfully."

2. Script Triển Khai (deploy.sh)

Tạo một tệp deploy.sh để triển khai ứng dụng lên môi trường sản xuất:

#!/bin/bash

# Cài đặt các phụ thuộc
echo "Installing dependencies..."
npm install --production

# Triển khai ứng dụng
echo "Deploying application..."
pm2 restart app

echo "Deployment completed successfully."

3. Script Kiểm Tra (test.sh)

Tạo một tệp test.sh để chạy các bài kiểm tra tự động:

#!/bin/bash

# Chạy kiểm tra mã nguồn
echo "Running tests..."
npm test

# Kiểm tra mã nguồn với linter
echo "Linting code..."
npm run lint

echo "Tests and linting completed successfully."

4. Script Hỗ Trợ (utilities.py)

Tạo một tệp utilities.py để cung cấp các chức năng hỗ trợ cho các script khác:

# utilities.py

def greet(name):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    import sys
    greet(sys.argv[1])

Sử Dụng Các Script Trong GitHub Actions

Bạn có thể gọi các script này trong các workflow GitHub Actions của bạn. Ví dụ, để sử dụng build.sh trong một workflow, bạn có thể thêm một bước vào tệp workflow như sau:

name: CI

on:
  push:
    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: '14'

    - name: Run build script
      run: ./.github/scripts/build.sh

    - name: Run tests
      run: ./.github/scripts/test.sh

Thư mục .github/scripts/ là một cách hiệu quả để tổ chức các script hỗ trợ cho các quy trình tự động hóa và CI/CD trong dự án của bạn. Nó giúp giữ cho kho lưu trữ của bạn gọn gàng và dễ quản lý, đồng thời cung cấp một nơi trung tâm để lưu trữ các script cần thiết.

Kết Luận

Thư mục .github cung cấp nhiều công cụ mạnh mẽ để cải thiện quản lý và tự động hóa quy trình phát triển dự án của bạn. Bằng cách cấu hình đúng cách các tệp tin trong thư mục này, bạn có thể cải thiện quy trình làm việc, chuẩn hóa các mẫu vấn đề và yêu cầu kéo, và thậm chí nhận hỗ trợ tài chính cho dự án của mình.

Hãy thử nghiệm với các tệp tin trong thư mục .github và điều chỉnh chúng để phù hợp với nhu cầu của dự án của bạn. Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm trợ giúp, đừng ngần ngại để lại câu hỏi trong phần bình luận bên dưới!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí