网站内容加密
...大约 2 分钟
私密仓库的内容推送到公开仓库
不想直接公开源代码,可以使用的 私有仓库 存放源代码,再推送到公开仓库
1. 生成部署用的 SSH KEY
生成密钥ed25519
ssh-keygen -t ed25519 -C
生成密钥rsaxxx
目前github只支持`rsa`、`ed25519` 这两种密钥
Key | value | |
---|---|---|
id_ed25519.pub | Git_Hub公开部分 | 见下 |
id_ed25519 | Git_Hub私有仓库 |
但是并不代表只能生成两个密钥,详见:
2.把key
配置到仓库
1. 新建一个私密仓库
2.在公开仓库部署KEY
3. 在公开仓库部署KEY(是公开仓库,不再是账号位置部署)
#### 在账号/公开仓库Deploy keys
处填入该内容
注意勾选write access,这样才能把私有仓库的内容写入
4. 对应的推送代码的参考
对应的 ssh-key:${{ secrets.BLOG_PRIVATE_KEY }}
要和仓库中的定义匹配
# .github/workflows/deploy_to_blog.yml
name: Build and Deploy to gh-pages of another repository
permissions:
contents: write
on:
# 每当 push 到 main 分支时触发部署
push:
branches: [main]
jobs:
build-and-deploy:
concurrency: ci-${{ github.ref }}
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
- name: node switch
uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
- name: Install and Build
run: |
npm install
npm run docs:build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
clean: true # 默认清除,可以不配置
branch: gh-pages # 默认分支,可不配置
repository-name: AndersonHJB/blog # 提交的目的仓库
ssh-key:${{ secrets.BLOG_PRIVATE_KEY }} # 私钥配置在当前仓库中(settings/secrets and variables/actions/secrets),公钥配置在目的仓库中(settings/Deploy keys)
# todo 名称要和github中书写的一致
folder: src/.vuepress/dist # 需要提交的目录文件
clean-exclude: |
CNAME
(配置好`.git`文件到origin main branch即可)
✅完成✅
Powered by Waline v3.1.3