你好!我叫Dima,是Wrike SysOps团队的技术负责人。在本文中,我将告诉您如何使网站尽可能靠近用户,并在10分钟和每月5美元的费用下自动进行网站部署。本文几乎与我们团队内部解决的问题无关。相反,这是我的个人经验以及对新技术的熟悉印象。我试图尽可能详细地描述这些步骤,以便这些说明对具有不同经验的人很有用。我希望你会喜欢。走!
因此,您可能已经找到一种简单且便宜的方法来托管您的网站。如这篇出色的文章所述,甚至免费。
? , ? Hugo, .
Gitlab CI/CD, ? Cloudflare Worker Sites.
:
1: Hugo
Hugo ( ), .
Hugo PATH
:
hugo new site blog.example.com
:
cd blog.example.com
:
hugo new posts/my-amazing-post.md
: content/posts/my-amazing-post.md.
, draft false:
hugo -D
./public .
2: Cloudflare
Cloudflare. , . blog.example.com.
1: DNS
2: Cloudflare
My Profile -> API tokens tab-> Create Token -> Create Custom Token
, Edit .
, .
3: accountid zoneid
Domain → Overview → [ ]
, .
4: Workers
Domain → Workers → Manage Workers
Workers → Unlimited ($5 ). .
3: ( )
, , . :
wrangler:
npm i @cloudflare/wrangler -g
:
cd blog.example.com
wrangler:
wrangler init — site hugo-worker
wrangler ( , ):
wrangler config
accountid zoneid
route - *blog.example.com/*
false workersdev
bucket ./public ( )
, : workers-site/index.js (. handleEvent)
, wrangler publish
.
4:
Gitlab, .
1:
GitLab : blog.example.com
CFAPITOKEN : Settings → CI/CD → Variables
2: .gitlab-ci.yml
.gitlab-ci.yml :
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
(CI / CD → Pipelines → Run Pipeline) commit master. !
, , , . , Workers.