使用 GitHub Actions 优化图片

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

前几天我一直在玩 GitHub Actions。真是个好用的工具!简而言之:你可以让它为你运行代码,例如运行你的构建流程、测试和部署。但它仅仅是配置文件,可以运行任何你需要的东西。有一个 完整的市场,有很多 Actions 想要为你工作。

我想要做的是运行代码来进行图片优化。这样我就不必再考虑它了。存储库中的任何图片都已优化。

已经有一个 Action 可以做到这一点,Calibre 的 image-actions,我们将在本文中使用它。你还需要确保已为存储库启用了 Actions。我知道在我的主要组织中,我们只在每个存储库的基础上启用 Actions,这是其中一个选项。

然后你在 ./github/workflows/optimize-images.yml 中创建一个文件。你可以在那里配置此 Action。如果需要,所有 Action 都可以有单独的文件。我将此设置为一个单独的文件,因为 (1) 它只适用于“推送到拉取请求”,因此如果你有在不同触发器上运行的其他 Action,它们不会很好地混合,以及 (2) 他们的文档中就是这样,并且看起来是建议的使用方式。

name: Optimize images
on: pull_request
jobs:
  build:
    name: calibreapp/image-actions
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master

      - name: Compress Images
        uses: calibreapp/image-actions@master
        with:
          githubToken: ${{ secrets.GITHUB_TOKEN }}

现在,如果你创建一个拉取请求,你就会看到它运行。

然后,成功的运行会在拉取请求上留下一个注释,说明它能够优化什么。

它还会将这些文件重新提交回拉取请求,因此,如果你要继续处理拉取请求并继续工作,你需要再次推送才能推送优化后的图片。

我可以查看该自动提交并查看差异。

Git Tower 中的提交预览。

我知道一切都很好,如何合并 PR。

非常酷。在本地优化你的图片是否特别困难?不。永远不必再考虑它是否更好?是的。你在这里承担了一点点技术债务,但在其他地方减少了它,这至少在我看来是一笔非常公平的交易。