GitHub 自动化部署:从0到1
· 阅读需 3 分钟
本指南旨在引导您使用 GitHub Actions 和 GitHub Pages,高效地为前端项目实现自动化部署。自动化部署不仅可以提高开发效率,还能确保代码质量。
TODO
github action 连接服务器,进行 docker 部署。
前提条件
- 一个 GitHub 账号。
- 基本的 Docker 知识。3.一个已上传至 GitHub 的 Node.js 项目
一、GitHub Actions:持续集成与部署工具
GitHub Actions 是一个用于持续集成和持续部署(CI/CD)的自动化工具。其基于 YML 文件进行配置,并能轻松集成至任何 GitHub 项目。
示例配置代码
.github/workflows/docker-build.yml
name: Docker Build and Push
on:
push:
branches:
- master # Or the branch name you want
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Setup Node.js environment
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm install
- name: Build Project
run: npm run build
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin
- name: Build Docker Image
run: docker build --platform linux/amd64 -t ${{ secrets.DOCKER_HUB_USERNAME }}/yiwen-blog-website:latest .
# githubpages
- name: Push to Docker Hub
run: docker push ${{ secrets.DOCKER_HUB_USERNAME }}/yiwen-blog-website:latest
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # 使用 GitHub Token 授权
publish_dir: ./build # 指定要部署的静态文件目录
publish_branch: gh-pages # 指定要发布的分支