diy科技制作网站,个人网站如何快速通过icp备案,wordpress连接数据库出错,百度品牌广告收费标准准备 
正式开始之前#xff0c;你需要掌握 GitHub Action 的基础语法#xff1a; 
workflow #xff08;工作流程#xff09;#xff1a;持续集成一次运行的过程#xff0c;就是一个 workflow。name: 工作流的名称。on: 指定次工作流的触发器。push 表示只要有人将更改推…准备 
正式开始之前你需要掌握 GitHub Action 的基础语法 
workflow 工作流程持续集成一次运行的过程就是一个 workflow。name: 工作流的名称。on: 指定次工作流的触发器。push 表示只要有人将更改推送到仓库就会触发工作流运行。点击这里了解如何指定特定分支路径或标签jobs: 将工作流运行的所有作业组合到一起。build-and-deploy: 定义的作业的名称。runs-on: 将作业配置为在最新版本的 Ubuntu Linux 上运行。这意味着作业将在 GitHub 托管的新虚拟机上执行。有关使用其他运行器的语法示例请参阅 GitHub 操作的工作流语法。steps: 将作业中运行的所有步骤组合在一起。嵌套在此部分下的每个项都是一个单独的操作或 shell 脚本。uses: 指定需要运行的 action。env: 指定运行 action 时需要用到的环境变量的值。 
一、密钥准备 
为了方便运行GitHub Actions时登录GitHub账号我们使用SSH方式登录。就是要把设备的私钥交给GitHub Actions公钥交给GitHub需要去Settings里去配置。 
使用ssh-keygen生成一组公私秘钥对 
ssh-keygen -t rsa -C Github 的邮箱地址如 ssh-keygen -t rsa -C 123gmail.com配置公钥配置路径github你的首页–Settings–SSH and GPG keys配置私钥项目私有仓库的Settings-Secrets里添加私钥名称为PRIVATE_KEY  
二、新建项目仓库 
在仓库的Actions选项卡下点击新建.github/workflow/blank.yml名称默认或者自定义修改配置如下 
# This is a basic workflow to help you get started with Actionsname: Deploy My Serveron:push:branches: [ master ]# Allows you to run this workflow manually from the Actions tabworkflow_dispatch:# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:# This workflow contains a single job called buildbuild:# The type of runner that the job will run onruns-on: ubuntu-latest# Steps represent a sequence of tasks that will be executed as part of the jobsteps:# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it- uses: actions/checkoutv2- name: use Node.js# 使用action库  actions/setup-node安装nodeuses: actions/setup-nodev1with:node-version: 16.x# 安装依赖- name: npm installrun: npm install# 打包- name: npm buildrun: npm run build# 部署到服务器- name: deployuses: easingthemes/ssh-deployv2.1.1env:# 本地.ssh文件下的私钥id_rsa存在secrets的PRIVATE_KEY中SSH_PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}# 复制操作的参数。-avzr --delete意味部署时清空服务器目标目录下的文件ARGS: -avzr --delete # 源目录相对于$GITHUB_WORKSPACE根目录的路径SOURCE: ./public/# 服务器域名/IPREMOTE_HOST: ${{ secrets.HOST }}# 服务器默认用户名为rootREMOTE_USER: root# 目标目录TARGET: /usr/local/xxx/dist# 排除目录EXCLUDE: /node_modules/ 
参数项 
部署到云服务器上需要用到 easingthemes/ssh-deploymainSSH_PRIVATE_KEY: 是在服务器上生成的 SSH 私钥可以使用命令 ssh-keygen -m PEM -t rsa -b 4096 生成并配置到仓库的 Secrets 中。ARGS: 默认即可。SOURCE: 需要上传到服务器上的文件的目录。REMOTE_HOST: 服务器公网 IP 或域名。REMOTE_USER: 服务器 SSH 用户名。TARGET: 文件上传到服务器上保存的目录。EXCLUDE: 可指定部分文件不上传。 
文件同步原理请参考rsync教程 
三、push分支到仓库 
push内容到仓库后Action会自动执行工作流此时你再看看你配置的TARGET服务器目录就会发现文件dist被拷贝过去了