https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712
https://gitee.com/
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
比 Travis CI 玩法更多。
持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合
每个 action 就是一个独立脚本,因此可以做成代码仓库,使用userName/repoName的语法引用 action。比如,actions/setup-node就表示github.com/actions/setup-node这个仓库,它代表一个 action,作用是安装 Node.js。事实上,GitHub 官方的 actions 都放在 github.com/actions 里面。
GitHub Actions 有一些自己的术语。
(1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
(2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
(3)step(步骤):每个 job 由多个 step 构成,一步步完成。
(4)action (动作):每个 step 可以依次执行一个或多个命令(action)。
GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows目录。
workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml,比如foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
使用Github-Actions同步github和gitee仓库
https://jasonkayzk.github.io/2020/10/23/%E4%BD%BF%E7%94%A8Github-Actions%E5%90%8C%E6%AD%A5github%E5%92%8Cgitee%E4%BB%93%E5%BA%93/
http://yikun.github.io/2020/01/17/%E5%B7%A7%E7%94%A8Github-Action%E5%90%8C%E6%AD%A5%E4%BB%A3%E7%A0%81%E5%88%B0Gitee/
通过Github API读取Repo列表。
下载或者更新Github repo的代码
设置远端分支
将最新同步的commit、branch、tag推送到Gitee。
name: Gitee repos mirror periodic job
on:
schedule:
# 每天北京时间9点跑
- cron: ‘0 1 * * *’
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Mirror the Github organization repos to Gitee.
uses: Yikun/gitee-mirror-action@v0.01
with:
# 必选,需要同步的Github用户(源)
src: github/Yikun
# 必选,需要同步到的Gitee的用户(目的)
dst: gitee/yikunkero
# 必选,Gitee公钥对应的私钥,https://gitee.com/profile/sshkeys
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
# 必选,Gitee对应的用于创建仓库的token,https://gitee.com/profile/personal_access_tokens
dst_token: ${{ secrets.GITEE_TOKEN }}
# 如果是组织,指定组织即可,默认为用户user
# account_type: org
# 还有黑、白名单,静态名单机制,可以用于更新某些指定库
# static_list: repo_name
# black_list: ‘repo_name,repo_name2’
# white_list: ‘repo_name,repo_name2’
http://yikun.github.io/2020/01/17/%E5%B7%A7%E7%94%A8Github-Action%E5%90%8C%E6%AD%A5%E4%BB%A3%E7%A0%81%E5%88%B0Gitee/
https://github.com/Yikun/hub-mirror-action/blob/master/entrypoint.sh
https://jasonkayzk.github.io/2020/09/18/%E5%9C%A8Gitee%E6%90%AD%E5%BB%BAGithub-Pages/
https://github.com/JasonkayZK/hub_sync_action
https://github.com/Yikun/hub-mirror-action/
https://jasonkayzk.github.io/2020/10/23/%E4%BD%BF%E7%94%A8Github-Actions%E5%90%8C%E6%AD%A5github%E5%92%8Cgitee%E4%BB%93%E5%BA%93/
https://cloud.tencent.com/developer/article/1765137
https://zhuanlan.zhihu.com/p/149988815
需要注意的是,在配置github actions 的时候,分为参数和环境变量,两个是隔离的,不能陪错了,否则跑不通,具体可以看下actions 的日志
https://qastack.cn/superuser/772660/howto-force-ssh-to-use-a-specific-private-key
https://stackoverflow.com/questions/62026742/error-loading-key-root-ssh-id-rsa-invalid-format
The Problem
I generated a PKCS#1 key format instead of a PKCS#8 format. The PKCS#1 is represented as:
—–BEGIN RSA PRIVATE KEY—–
BASE64 ENCODED DATA
—–END RSA PRIVATE KEY—–
The PKCS#8 is represented as:
—–BEGIN PRIVATE KEY—–
BASE64 ENCODED DATA
—–END PRIVATE KEY—–
Solution
I simply copied the PRIVATE KEY and converted it here https://decoder.link/rsa_converter
You can also see a better elucidation here Differences between “BEGIN RSA PRIVATE KEY” and “BEGIN PRIVATE KEY”
建议用github网页的生成算法
https://stackoverflow.com/questions/62026742/error-loading-key-root-ssh-id-rsa-invalid-format
https://juejin.cn/post/6844904128754221070
https://stackoverflow.com/questions/42863913/key-load-public-invalid-format
https://decoder.link/rsa_converter
https://www.it1352.com/2052822.html