创建一个GitHub action
在GitHub仓库选中action,创造一个action
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39name: deploy to aliyun on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: # 切换分支 - name: Checkout uses: actions/checkout@master # 下载 git submodule - uses: srt32/git-actions@v0.0.3 with: args: git submodule update --init --recursive # 使用 根据自己的情况选择node版本,这里用node:15 - name: use Node.js 15 uses: actions/setup-node@v1 with: node-version: 15 # npm install and build - name: npm install and build run: | npm install npm run build env: CI: true # Deploy to aliyun - name: Deploy to aliyun server uses: easingthemes/ssh-deploy@v2.1.5 env: SSH_PRIVATE_KEY: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }} ARGS: "-avzr --delete" SOURCE: "build/" REMOTE_HOST: ${{ secrets.ALIYUN_SERVER_HOST }} REMOTE_USER: ${{ secrets.ALIYUN_REMOTE_USER }} TARGET: ${{ secrets.ALIYUN_TARGET }}
这里以node15为例:
1
2name: deploy to aliyun
这个是任务的名称,参考作用。
1
2
3
4
5on: push: branches: - master
这部分是触发器,当发生哪些行为时,触发 Github Action 的执行。
如上配置,则是当 master 分支,发生 push 时,触发执行。
1
2
3
4
5jobs: build: runs-on: ubuntu-latest steps:
开始正式的构建项目了,jobs 就是工作流程,工作流程运行包括一项或多项任务。
runs-on定义了我们这项作业的运行环境,机器可以是 GitHub 托管的运行器或自托管的运行器。
steps 是步骤,每个步骤可以是运行命令或是其他操作。
最后一步,项目编译完成后,将会在项目目录的 build 下完成构建,我们只需要把这个目录下的所有文件发布到阿里云即可。
配置 secret
到服务器中,运行
1
2ssh-keygen -m PEM -t rsa -b 4096
一定要用PEM格式,不然会报错Load key “/home/runner/.ssh/deploy_key”: invalid format
1
2
3cd ~/.ssh cat id_rsa.pub >> ~/.ssh/authorized_keys
将公钥写入.ssh/authorized_keys
1
2vim ~/.ssh/authorized_keys
vim查看,此时authorized_keys会多出密钥
1
2cat id_rsa
将内容复制下来,来到GitHub仓库,进入 Secrets 配置
New 一个 secret,名字叫ALIYUN_SERVER_ACCESS_TOKEN,然后把刚刚复制的值放进去,保存
接着再创建几个
1
2
3
4ALIYUN_SERVER_HOST = 阿里云服务器的地址 ALIYUN_REMOTE_USER = 阿里云user,一般是root ALIYUN_TARGET = 目标路径
这样只要代码一push,就会自动运行action,然后构建发布到阿里云上去
可以在GitHub 里面查看action的运行情况,如图是一个成功的例子
报错bash: rsync: command not found
这是因为服务器没有安装rsync
去安装rsync即可:
1
2yum install rsync
报错 Load key “/home/runner/.ssh/deploy_key”: invalid format
说明ssh的key格式不匹配,可以参考上面配置 secret重新生成key,也可以将现有的转换成PEM格式:
1
2ssh-keygen -p -f ~/.ssh/id_rsa -m pem
最后
以上就是缓慢鸭子最近收集整理的关于阿里云服务器系列(五)使用Github Action发布项目到阿里云创建一个GitHub action配置 secret报错bash: rsync: command not found报错 Load key “/home/runner/.ssh/deploy_key”: invalid format的全部内容,更多相关阿里云服务器系列(五)使用Github内容请搜索靠谱客的其他文章。
发表评论 取消回复