Skip to main content

Sử dụng quy trình làm việc tùy chỉnh với GitHub Pages - GitHub Docs

Bạn có thể tận dụng GitHub Actions và GitHub Pages bằng cách tạo tệp quy trình làm việc hoặc chọn từ các quy trình làm việc được xác định trước.

Ai có thể sử dụng tính năng này?

GitHub Pages có sẵn trong các kho lưu trữ công cộng với GitHub Free và GitHub Free dành cho tổ chức, và trong các kho lưu trữ công cộng và riêng tư với GitHub Pro, GitHub Team, GitHub Enterprise Cloud và GitHub Enterprise Server. Để biết thêm thông tin, hãy xem " Kế hoạch của GitHub ".

GitHub Pages hiện sử dụng GitHub Actions để thực thi bản dựng Jekyll. Khi sử dụng nhánh làm nguồn bản dựng của bạn, GitHub Actions phải được bật trong kho lưu trữ của bạn nếu bạn muốn sử dụng quy trình làm việc Jekyll tích hợp. Ngoài ra, nếu GitHub Actions không khả dụng hoặc bị tắt, việc thêm tệp .nojekyllvào gốc nhánh nguồn của bạn sẽ bỏ qua quy trình dựng Jekyll và triển khai nội dung trực tiếp. Để biết thêm thông tin về cách bật GitHub Actions, hãy xem " Quản lý cài đặt GitHub Actions cho kho lưu trữ ".

Về quy trình làm việc tùy chỉnh

Quy trình làm việc tùy chỉnh cho phép xây dựng các trang GitHub Pages thông qua việc sử dụng GitHub Actions. Bạn vẫn có thể chọn nhánh bạn muốn sử dụng thông qua tệp quy trình làm việc, nhưng bạn có thể làm được nhiều hơn thế nữa khi sử dụng quy trình làm việc tùy chỉnh. Để bắt đầu sử dụng quy trình làm việc tùy chỉnh, trước tiên bạn phải bật chúng cho kho lưu trữ hiện tại của mình. Để biết thêm thông tin, hãy xem " Cấu hình nguồn xuất bản cho trang GitHub Pages của bạn ".

Cấu hình configure-pageshành động

GitHub Actions cho phép sử dụng GitHub Pages thông qua configure-pageshành động, hành động này cũng cho phép bạn thu thập các siêu dữ liệu khác nhau về một trang web. Để biết thêm thông tin, hãy xem hành configure-pagesđộng.

Để sử dụng hành động này, hãy đặt đoạn mã này vào jobsquy trình làm việc mong muốn của bạn.

- name: Configure GitHub Pages uses: actions/configure-pages@v3

Hành động này giúp hỗ trợ triển khai từ bất kỳ trình tạo trang tĩnh nào đến GitHub Pages. Để quá trình này ít lặp lại hơn, bạn có thể sử dụng mẫu quy trình làm việc cho một số trình tạo trang tĩnh được sử dụng rộng rãi nhất. Để biết thêm thông tin, hãy xem " Sử dụng mẫu quy trình làm việc ".

Cấu hình upload-pages-artifacthành động

Các upload-pages-artifacthành động cho phép bạn đóng gói và tải lên các hiện vật. Hiện vật GitHub Pages phải là một gzipkho lưu trữ được nén chứa một tartệp duy nhất. tarTệp phải có kích thước dưới 10 GB và không được chứa bất kỳ liên kết tượng trưng hoặc liên kết cứng nào. Để biết thêm thông tin, hãy xem hành upload-pages-artifactđộng.

Để sử dụng hành động này trong quy trình làm việc hiện tại của bạn, hãy đặt đoạn mã này bên dưới jobs.

- name: Upload GitHub Pages artifact uses: actions/upload-pages-artifact@v1

Triển khai các hiện vật GitHub Pages

Hành động này deploy-pagesxử lý thiết lập cần thiết để triển khai các hiện vật. Để đảm bảo chức năng phù hợp, cần đáp ứng các yêu cầu sau:

  • Công việc này phải có tối thiểu là pages: writeid-token: writequyền.
  • Tham needssố phải được đặt thành idbước xây dựng. Không đặt tham số này có thể dẫn đến việc triển khai độc lập liên tục tìm kiếm hiện vật chưa được tạo.
  • Phải environmentthiết lập để thực thi các quy tắc bảo vệ nhánh/triển khai. Môi trường mặc định là github-pages.
  • Để chỉ định URL của trang làm đầu ra, hãy sử dụng url:trường.

Để biết thêm thông tin, hãy xem hành deploy-pagesđộng.

# ... jobs: deploy: permissions: contents: read pages: write id-token: write runs-on: ubuntu-latest needs: jekyll-build environment: name: github-pages url: ${{steps.deployment.outputs.page_url}} steps: - name: Deploy artifact id: deployment uses: actions/deploy-pages@v1 # ...

Liên kết các công việc xây dựng và triển khai riêng biệt

Bạn có thể liên kết các công việc builddeploytác vụ của mình trong một tệp quy trình công việc duy nhất, loại bỏ nhu cầu tạo hai tệp riêng biệt để có cùng kết quả. Để bắt đầu trên tệp quy trình công việc của mình, bên dưới jobsbạn có thể xác định một tác vụ builddeploytác vụ để thực hiện các tác vụ của mình.

# ... jobs: # Build job build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Pages id: pages uses: actions/configure-pages@v3 - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: source: ./ destination: ./_site - name: Upload artifact uses: actions/upload-pages-artifact@v2 # Deployment job deploy: environment: name: github-pages url: ${{steps.deployment.outputs.page_url}} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2 # ...

Trong một số trường hợp, bạn có thể chọn kết hợp mọi thứ thành một công việc duy nhất, đặc biệt là nếu không cần quy trình xây dựng. Do đó, bạn sẽ chỉ tập trung vào bước triển khai.

# ... jobs: # Single deploy job no building deploy: environment: name: github-pages url: ${{steps.deployment.outputs.page_url}} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Pages uses: actions/configure-pages@v3 - name: Upload Artifact uses: actions/upload-pages-artifact@v2 with: # upload entire directory path: '.' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2 # ...

Bạn có thể xác định công việc của mình sẽ được chạy trên các trình chạy khác nhau, tuần tự hoặc song song. Để biết thêm thông tin, hãy xem " Chọn những gì quy trình làm việc của bạn thực hiện ".