Cecil 和 github 操作 · HappyToDev

在开始这个新博客时,我必须向您介绍 Cecil:一个用 PHP 编写的静态站点生成器。

文档非常广泛,我不会向您展示如何安装它,但我会向您展示如何在 Github Actions 上部署此站点。

塞西尔??

Cecil 是一个用 PHP 编写的静态站点生成器。 他是这个网站的运营者,也是我的支持者 链接页面

阿诺·利尼 是他的父亲,我想我可以说他经常从事这方面的工作。 此外,它对 Github 的支持响应非常灵敏。

如果你想了解更多关于Cecil的信息,我只能推荐你去官网: https://cecil.app

部署 ??

等等 Fred,您是在告诉我们您发布的每篇文章都会进行部署、生产启动吗?

是的,所以实际上这样说,可能会很可怕。

但我向您保证,这是通过 Github Actions 自动部署的。

所以如果“自动部署,Github操作”这几个词对你来说是胡言乱语,我只能建议你去看看 持续集成/持续交付培训 来自朋友 Yoan Dev。 通过点击此链接,您将有权享受 15% 的折扣。 (这不是附属链接😉)

Github 操作

重点

需要澄清的是,我的主机 (o2switch) 不允许我通过 Github Actions 进行 SSH,所以这迫使我改用 FTP。

但我可以向你保证它功能齐全。

但如果您希望采用不同的方式,则只需在部署部分调整脚本即可。

先决条件

显然,在开始之前有一些先决条件。

部署脚本

如果尚未完成此操作,则必须创建一个目录 .github/workflows 如下图所示:

然后将下面的脚本复制/粘贴/调整到您可以调用的文件中 main.yml

name: ftpdeployment

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout source
        uses: actions/checkout@v4
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.1'
          extensions: mbstring, gd, imagick, intl, gettext
      - name: Build with Cecil
        uses: Cecilapp/Cecil-Action@v3
      - name: Upload artifact
        uses: actions/upload-artifact@v3
        with:
          name: website
          path: _site
  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Download artifact
        uses: actions/download-artifact@v3
        with:
          name: website
          path: _site
      - name: FTP Deploy
        uses: SamKirkland/[email protected]
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          local-dir: ./_site/

一些快速解释:

  • on:push:branches: => 表示当主分支被推送时该脚本将运行
  • jobs:这里将执行两个作业。 首先是构建作业,然后是部署作业
  • “构建”作业将在 ubuntu 映像上执行,并将包括以下步骤:
    • 源签出:检索存储库源
    • PHP 设置:配置 PHP 环境,允许执行以下构建步骤
    • 使用 Cecil 构建:将允许您构建目录 _site 包含生成的静态站点
    • 上传工件:这将保存工件,包括目录 _site 通过命名它 website 以便下次工作时可以使用
  • “部署”作业将在相同的 ubuntu 映像上执行,并将包括以下步骤:
    • 恢复上一个作业期间生成的工件
    • 目录部署 _site 通过 FTP 使用先前保存在 github 上的机密

如果第一次部署期间一切顺利,FTP 部署脚本将创建所有必需的目录和文件。

在接下来的时间里 push,它只会上传新的和修改的文件。

通过这个非常简单的设置,我只需要编写我的 Markdown 文件,提交它们并推送它们,以便它们在下一分钟内出现在网上。 我的模板文件显然也是如此。

我会加 阿诺的精彩言论 :

让我们指定部署是原子的:如果站点的(重新)构建阶段由于某种原因失败,则不会创建存档,因此不会通过 FTP 发送,因此不存在“破坏”生产中的站点的风险😊

使用起来确实非常愉快,然后在性能和安全性方面,没有任何问题。

然后,最后一个也是最重要的优势是我们可以在周五投入生产,这是无价的! 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​