Azure Static Web App通过Pipelines自动部署Hugo站点

Azure Static Web App免费套餐配置为500MB空间,100GB月流量。Repos代码仓库无限制,Pipelines每月1800分钟构建时长。对于个人站点来说,这个配置足够使用了。

开通Azure Static Web App

访问以下地址注册开通:

注册Azure Static Web App

Azure Static Web App支持多个区域,国内访问建议选择东南亚区域。

开通Azure Static Web App服务的时候,可以直接选择Azure DevOps部署,这样就可以自动创建Pipelines,这里为了演示手动配置,选择了其他:

Azure Static Web App注册

创建Repos代码仓库

注册登录Azure DevOps,创建一个仓库用于存放Hugo站点。

Azure Repos代码仓库

配置azure-pipelines.yml文件

创建一个名称为azure-pipelines.yml的文件,放在站点根目录中,内容为:

trigger:
  - main

pool:
  vmImage: ubuntu-latest

steps:
  - checkout: self
    submodules: true
  - task: AzureStaticWebApp@0
    inputs:
      app_location: 'public'
      output_location: ''
      skip_app_build: true
      azure_static_web_apps_api_token: $(deployment_token)

创建持续集成管道

在Azure DevOps新建Pipeline,选择Azure Repos Git:

新建Azure Pipeline

选择要部署的仓库:

选择要部署的仓库

选择使用Azure Pipeline配置文件(Existing Azure Pipelines YAML file):

选择使用Azure Pipeline配置文件

选择之前创建好的azure-pipelines.yml配置文件:

选择azure-pipelines.yml配置文件

创建环境变量

在Azure Static Web App获取令牌:

获取Azure Static Web App令牌

在之前创建的Pipeline处添加环境变量,点击编辑:

编辑Pipeline

点击创建变量:

创建Pipeline环境变量

变量名称为:deployment_token,值填写之前获取到的Azure Static Web App令牌,然后勾选加密保存:

创建Pipeline环境变量

申请Azure DevOps Parallelism

Azure Pipelines免费配额为:

  • 1 个 Microsoft 承载的免费 CI/CD;
  • 1 个自承载的免费 CI/CD;
  • 1 个 Microsoft 托管作业(CI/CD 每月 1,800 分钟)和 1 个自托管作业(每月无限分钟数);
  • 之后每增加一个 Microsoft 托管 CI/CD 并行作业收取 $40,每增加一个自托管 CI/CD 并行作业收取 $15(无限分钟数)

在运行Pipeline时如果收到以下错误:

##[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request

则需要访问以下地址申请并行数:

https://aka.ms/azpipelines-parallelism-request

填写表格后一般2-3天就申请通过了。

专注于写作

配置好一切,之后就可以专注于写作了,git命令提交站点到Azure Repos代码仓库,Pipeline自动部署到了Azure Static Web App网站就更新了。

阿里云