完整实现 Github Actions 持续部署

实现

代码如下:

# 文件路径 .github/workflows/deployment.yml
name: Deployment

on:
  push:
    branches: [main] # only push events on source branch trigger deployment

jobs:
  hexo-deployment:
    runs-on: ubuntu-latest
    env:
      TZ: Asia/Shanghai

    steps:
    - name: Checkout source
      uses: actions/checkout@v2
      with:
        submodules: true

    - name: Setup Node.js
      uses: actions/setup-node@v1
      with:
        node-version: '12.x'
        
    - name: Install dependencies & Generate static files
      run: |
        node -v
        npm i -g hexo-cli
        npm i
        hexo clean
        hexo g        
    - name: Deploy to Github Pages
      env:
        GIT_NAME: WillCAI2020
        GIT_EMAIL: ${{ secrets.GIT_EMAIL_BLOG }}
        REPO: github.com/WillCAI2020/WillCAI2020.github.io
        GH_TOKEN: ${{ secrets.GH_TOKEN_BLOG }}
      run: |
        cd ./public && git init && git checkout -b main && git add .
        git config --global user.name $GIT_NAME
        git config --global user.email $GIT_EMAIL
        git commit -m "GitHub Actions Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')"
        git push --force --quiet "https://$GH_TOKEN@$REPO" main:main

注意

变量命名以及步骤解释在 此文 均有讲解,这里不再赘述。

分支

2020年10月份开始 GitHub 把默认的 master 分支换成了 main 分支。为了方便,我在远程仓库的分支也设为了 main 分支。这里注意:本地 `git init`后默认仍为 master 分支,此时应将新建 main 分支,并切换到 main 分支。

```c
//新建 main 分支,并切换到 main 分支
git checkout -b main
```

仓库

我的源码放在了仓库 blog 中,但是为使用 gh-pages,生成的 public 静态文件必须放在 username.github.io 的仓库中。

故而添加的 Secrets 变量均在 bolg 仓库中。

错误总结

原本我的仓库均只有 main 分支,而 jobs 代码并未加上 git checkout -b main,导致报错 error: failed to push some refs to,根据此文,同时浏览了 Git push 讲解,然后从“分支名不完整、没有提交代码、本地与远程产生冲突”入手。

经过一番苦思,突然想到把远程那虚拟主机当成自己的电脑,直接 git init,然后 git add .,提交的不就是本地的 master 分支吗,但是我 git push指明本地的是 main 分支,而 main 分支不存在当然会报错,于是加上 git checkout -b main,解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值