Netlify의 웹사이트용 예약 빌드

나는 최근에 형제의 기타 교육 사업 웹사이트cgguitar.co.uk를 재작성하기 시작했습니다.

목표를 달성하기 위해 정기적으로 Netlify 웹사이트 빌드를 예약하고 싶었습니다.
Netlify에는 이 기능이 내장되어 있지 않지만 Netlify에는 빌드에 대한 트리거를 호출할 수 있는 '웹후크'가 있습니다.

이 게시물에서는 Github Actions 또는 CircleCI를 사용하여 이 빌드를 트리거하는 두 가지 방법을 제공합니다. Github Actions를 사용하면 사용 사례에 따라 상당한 단점이 있을 수 있습니다. 이에 대해 자세히 알아보려면 계속 읽어보세요!

빌드 시 YouTube 재생 목록 가져오기 Netlify에서 빌드 후크 찾기



Netlify에 로그인하고 사이트 설정 및 로컬 "빌드 및 배포"섹션으로 이동하면 빌드 후크가 있을 것입니다.



터미널에서 curl 요청을 만들어 이를 테스트할 수 있습니다.Netlify 웹사이트 빌드가 트리거되는 것을 볼 수 있습니다.

curl -X POST -d {} https://api.netlify.com/build_hooks/$NETLIFY_BUILD_HOOK_TOKEN


Important: Ensure you keep NETLIFY_BUILD_HOOK_TOKEN secret, otherwise anyone can call your build and potentially cause you to go over your build quota.



Github Actions가 이것을 할 수 있습니까?



Github 작업을 통해 Github에서 지속적인 통합을 수행할 수 있으며 여기에 완벽하게 맞는 것 같습니다...

Github 리포지토리의 다음 폴더.github/workflows에서 다음을 만들 수 있습니다.

name: Scheduled build
on:
  schedule:
  - cron: '00 15 * * *'
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Trigger our build webhook on Netlify
      run: curl -s -X POST "https://api.netlify.com/build_hooks/${TOKEN}"
      env:
        TOKEN: ${{ secrets.NETLIFY_BUILD_HOOK_TOKEN }}


위 구성은 매일 15:00경에 실행됩니다.

Github의 비밀로 build_hook 토큰을 보호하고 싶을 것입니다.

나는 원래 이것을했고 작업이 올바르게 수행되었다고 생각 했습니까? 글쎄요.

Github Actions are disabled on projects after 60 days if there is no activity on the repository, meaning bye bye scheduled builds.



위의 제한은 사용 사례에 따라 괜찮을 수 있지만 YouTube 재생 목록에서 최신 비디오를 가져오고 있는지 확인하고 싶었던 제 경우에는 웹 사이트의 코드 자체가 자주 업데이트되지 않을 수 있기 때문에 좋지 않았습니다. 하지만 새로운 동영상이 추가될 수 있습니다.

대신 CircleCI 사용



Github 작업에 대한 한 가지 대안은 CircleCI를 사용하여 대신 이를 수행하는 것입니다. 무료 티어도 넉넉하므로 이에 대한 비용이 없어야 합니다.

다음과 같은 구성을 만들 수 있습니다.
  • Git 저장소에 .circleci라는 폴더를 만듭니다.
  • config.yml라는 파일을 만듭니다.
  • config.yml를 다음과 같이 채웁니다(원하는 경우 다른 이미지를 사용할 수 있음). 매일 오후 3시에 제작됩니다.

    version: 2
    
    defaults: &defaults
      machine:
        image: circleci/classic:201710-02
      steps:
        - run: curl -X POST -d {} https://api.netlify.com/build_hooks/$NETLIFY_BUILD_HOOK_TOKEN
    
    jobs:
      docker:
        <<: *defaults
    
    workflows:
      version: 2
    
      autobuild:
        triggers:
          - schedule:
              cron: "0 14 * * *"
              filters:
                branches:
                  only:
                    - main
        jobs:
          - docker
    


    이제 CircleCI에서 프로젝트를 생성할 수 있으며 빌드를 테스트할 수 있어야 합니다.NETLIFY_BUILD_HOOK_TOKEN는 프로젝트의 CircleCI 설정에서 Github와 유사한 방식으로 환경 변수로 설정해야 합니다.



    내 작품을 더 읽고 싶다면 트위터에서 나를 팔로우하거나 마음에 든다면 ☕를 받아주세요.

    좋은 웹페이지 즐겨찾기