くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

GitHub ActionsでCloudflareのキャッシュをパージする

GitHub ActionsとCloudflareを使っているけど、
デプロイ時にキャッシュをパージしたいなと思ってたら、すでにあった(´ω`)

Cloudflare Purge Cache · Actions · GitHub Marketplace

Cloudflare Purge Cacheを試してみたときの備忘録

手動のときはCachingページのここでやってるやつ。

f:id:wannabe-jellyfish:20210706014053p:plain

GitHub Actionsのyaml

こんな感じ。

name: Cloudflare Purge Cache Sample
"on":
  push:
    branches:
      - develop

env:
  BASE_URL: https://example.com

jobs:
  purge_cache:
    runs-on: ubuntu-latest
    steps:
      - name: Purge cache
        uses: jakejarvis/cloudflare-purge-action@master
        env:
          CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }}
          CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
          PURGE_URLS: '["${{ env.BASE_URL }}", "${{ env.BASE_URL }}/"]'

最低限、設定に必要なのはCLOUDFLARE_ZONECLOUDFLARE_TOKENの2つ。

CLOUDFLARE_ZONE

対象のドメインの概要ページにある。
わかりずらいけど、右下のほうに記載。

f:id:wannabe-jellyfish:20210706014204p:plain

ゾーンIDをコピーして、GitHubのSercletのCLOUDFLARE_ZONEに保存。

CLOUDFLARE_TOKEN

ゾーンIDの下にある「APIトークンを取得」から。
https://dash.cloudflare.com/profile/api-tokens

f:id:wannabe-jellyfish:20210706014247p:plain

トークンを作成する」を押したら、
カスタムトークンの方を選択。

f:id:wannabe-jellyfish:20210706014313p:plain

トークン名」と「アクセス許可」と「ゾーン リソース」を設定。

f:id:wannabe-jellyfish:20210706014445p:plain

完了するとトークンが生成されるので、
コピーして、GitHubのSercletのCLOUDFLARE_TOKENに保存。

f:id:wannabe-jellyfish:20210706014531p:plain

PURGE_URLS

パージしたいURLを指定するときに利用する環境変数
指定しない場合は、すべてがパージされる。

CLOUDFLARE_EMAILとCLOUDFLARE_KEY

ドキュメントには、
CLOUDFLARE_EMAILCLOUDFLARE_KEYも記載されてるけど、
古いバージョンのAPIなのでトークンがあればOK。

以上!! 便利(´ω`)

参考にしたサイト様