[Cloudflare] Pages 배포 자동화하기 (Github Action)

[원본 링크]

원래 Github Page로 배포해놓고 쓰던 정적사이트가 하나 있었는데, 너무 불편하고 제약도 많아서 cloudflare page로 옮기게 됐다.

그리고 CI/CD는 github action으로 쓰려 한다.
github action 코드는 대충 이런식이면 된다.

# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [ master ]

  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with: 
          node-version: '16'

      # Runs a single command using the runners shell
      - name: install 
        run: npm install

      - name: build
        run: npm run build

      - name: Publish to Cloudflare Pages
        uses: cloudflare/pages-action@1
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} 
          projectName: 프로젝트명
          directory: 배포경로
          gitHubToken: ${{ secrets.GITHUB_TOKEN }}

저기서 CLOUDFLARE_API_TOKEN와 CLOUDFLARE_ACCOUNT_ID란 것만 잘 찾아서 깃헙 시크릿에 넣어주면 된다.
cloudflare 페이지로 가보자

account id는 아무 도메인 리소스로 이동해서


저기 우측에 모자이크쳐놓은 Account ID를 가져다쓰면 된다.

토큰은 직접 만들어야 한다.
내 프로필에서 API Tokens로 이동하고

생성

커스텀 생성

Pages 권한을 넣어주고 만들면 된다.

그럼 이렇게 토큰값을 보여줄 것이다.

한번만 보여주고 마니, 잘 저장해놓자.

그리고 저 두개를

시크릿에 저장하고 배포만 하면 된다.

난 잘 됐다.




단점

이걸 쓰면 무조건 배포 브랜치가 main으로 고정되고, 바꿀 수가 없다.
브랜치를 마음대로 하려면 github action이 아니라 cloudflare에서 빌드를 돌려야 한다.