Tôi đã có thể thiết lập các hành động github để tự động cam kết kết quả của một lệnh xây dựng nút ( yarn build
trong trường hợp của tôi nhưng nó cũng sẽ hoạt động với npm) cho gh-pages
nhánh bất cứ khi nào một cam kết mới được đẩy lên chính.
Mặc dù không hoàn toàn lý tưởng vì tôi muốn tránh phạm phải các tệp đã xây dựng, nhưng có vẻ như đây là cách duy nhất để xuất bản lên trang github.
Tôi dựa trên quy trình làm việc của mình từ hướng dẫn này cho một thư viện phản ứng khác và phải thực hiện các thay đổi sau để làm cho nó hoạt động với tôi:
- đã cập nhật bước "nút thiết lập" để sử dụng phiên bản được tìm thấy ở đây vì phiên bản từ mẫu mà tôi đang căn cứ vào nó đã gây ra lỗi vì nó không thể tìm thấy hành động chính xác.
- loại bỏ dòng chứa
yarn export
vì lệnh đó không tồn tại và nó dường như không thêm bất kỳ điều gì hữu ích (bạn cũng có thể muốn thay đổi dòng xây dựng bên trên nó để phù hợp với nhu cầu của mình)
- Tôi cũng đã thêm một
env
chỉ thị vào yarn build
bước để tôi có thể bao gồm băm SHA của cam kết đã tạo ra bản dựng bên trong ứng dụng của tôi, nhưng đây là tùy chọn
Đây là hành động github đầy đủ của tôi:
name: github pages
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v2-beta
with:
node-version: '12'
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn install --frozen-lockfile
- run: yarn build
env:
REACT_APP_GIT_SHA: ${{ github.SHA }}
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
Giải pháp thay thế
Tài liệu cho next.js cũng cung cấp hướng dẫn thiết lập với Vercel , dịch vụ này dường như là một dịch vụ lưu trữ cho các ứng dụng node.js tương tự như các trang github. Tôi đã không thử điều này mặc dù và vì vậy không thể nói nó hoạt động tốt như thế nào.
grunt assemble
sau đó git cam kết và đẩy đến nhánh gh-pages và bạn tắt và chạy.