解决logseq发布笔记build失败
问题: build: This request has been automatically failed because it uses a deprecated version of actions/upload-artifact: v2
.
原因: GitHub 弃用了版本v1
和v2
版本的actions/upload-artifact
操作。
修复: 更新工作流程文件,将actions/upload-artifact@v2
的2
改成3
或者4
。
步骤:
- 在GitHub搜索
pengx17/logseq-publish
,一般第一个就是,fork这个库。
- 修改自己fork库中的action.yml文件,找到
uses: actions/upload-artifact@v2
(一般在第51行),修改成uses: actions/upload-artifact@v3
,或uses: actions/upload-artifact@v4
。提交。 - 打开自己存放Logseq数据的库,在
.github/workflows
目录下找到main.yml
文件。 - 将
uses: pengx17/logseq-publish@main
修改为uses: 自己的账号/logseq-publish@main
。提交。
- 这时候会发现在Action中,
main.yml
可以build成功了。但是直接re-run之前失败的笔记依旧会失败,因为在失败记录中使用的工作流文件还是修改前的。 - 重新拉取推送。这时候由于本地仓库和远程仓库存在不同,会导致无法快速合并,出现
Fatal: Not possible to fast-forward, aborting
,这个很好解决,提供两种方法。
⚠️ 在进行任何尝试前,首先应该备份自己的数据。
- 第一种:在git pull时,使用
git pull origin 分支名 --rebase
。 - 第二种:如果远程仓库内容完整,可以直接下载远程仓库代替本地仓库。
注意: 以上步骤仅适用于pengx17
发布的使用GitHub Action发布Logseq笔记
方法。但如果你也是用GitHub Action
而非GitHub Pages
,且自己库中的.yml
文件没有出现uses: actions/upload-artifact@v2
,这里提供一种思路。
步骤:
- 查看文件中
uses:
后面的信息,/
前是账号,/
后是库名,@
后忽略。 - 找到对应的库后,查看其中
.yml
文件的内容,看有没有uses: actions/upload-artifact@v2
。 - 如果有就fork该库,然后修改自己fork的库,将
uses: actions/upload-artifact@v2
改成uses: actions/upload-artifact@v3
。 - 如果没有,说明问题不出在这个库,找找其他
uses:
后的库。