사이트맵 생성 작업

12206 단어 actionshackathon

내 워크플로



웹 개발을 좋아하지 않는 사람으로서, 내 개인 웹사이트의 유지 관리의 일부를 자동화하는 것은 나에게 큰 장점입니다. 특히 콘텐츠에 중요하지 않지만 잠재적으로 검색 엔진이 결정하는 데 유용한 사이트맵과 같은 것 사이트의 어느 부분을 더 자주 크롤링해야 하는지 콘텐츠를 Github 페이지에 푸시하기 전에 내 웹사이트에 콘텐츠를 추가하거나 업데이트할 때 로컬에서 실행할 스크립트를 사용하고 있었습니다.

Python에서 내 사이트맵 생성기를 Github Action, generate-sitemap 으로 다시 구현하기로 결정했습니다. 이 작업은 다른 사람들에게 유용한 경우를 대비하여 Github Marketplace에서도 공유했습니다. 위에 링크된 리포지토리의 README에서 샘플 워크플로와 함께 사용 가능한 입력 및 출력에 대한 전체 세부 정보를 찾을 수 있습니다.

제출 카테고리:



유지 보수 필수품

Yaml 파일 또는 코드 링크



다음은 내 generate-sitemap 작업을 다른 작업과 결합하는 기본 예제 워크플로 템플릿입니다. 콘텐츠가 리포지토리로 푸시되면 generate-sitemap은 마지막 커밋 날짜를 사용하여 각 페이지가 마지막으로 수정된 시간을 확인하고 noindex 지시문이 있는 html 파일을 건너뛰고 xml 사이트맵을 출력하여 디렉터리 구조를 탐색합니다. 사이트맵이 변경된 경우 다른 작업을 사용하여 풀 요청을 생성합니다.

name: Generate xml sitemap

on:
  push:
    branches:
      - master

jobs:
  sitemap_job:
    runs-on: ubuntu-latest
    name: Generate a sitemap
    steps:
    - name: Checkout the repo
      uses: actions/checkout@v2
      with:
        fetch-depth: 0 
    - name: Generate the sitemap
      id: sitemap
      uses: cicirello/[email protected]
      with:
        base-url-path: https://THE.URL.TO.YOUR.PAGE/
    - name: Create Pull Request
      uses: peter-evans/create-pull-request@v3
      with:
        title: "Automated sitemap update"
        body: > 
          Sitemap updated by the [generate-sitemap](https://github.com/cicirello/generate-sitemap) 
          GitHub action. Automated pull-request generated by the 
          [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action.

다음은 사이트맵 생성 작업을 사용하는 몇 가지 구체적인 예제 워크플로입니다.

Chips-n-Salsa library에 대한 문서는 해당 저장소의 문서 디렉토리에서 유지 관리됩니다. This workflow은 웹사이트가 리포지토리의 루트에 있지 않은 경우와 같은 경우와 관련된 입력의 예를 제공합니다.

name: Generate API sitemap

on:
  push:
    branches:
      - development

jobs:
  sitemap_job:
    runs-on: ubuntu-latest
    name: Generate a sitemap
    steps:
    - name: Checkout the repo
      uses: actions/checkout@v2
      with:
        fetch-depth: 0 
    - name: Generate the sitemap
      id: sitemap
      uses: cicirello/[email protected]
      with:
        base-url-path: https://chips-n-salsa.cicirello.org/
        path-to-root: docs
    - name: Output stats
      run: |
        echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
        echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
        echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}"
    - name: Create Pull Request
      uses: peter-evans/[email protected]
      with:
        title: "Automated sitemap update"
        body: > 
          Sitemap was updated by [generate-sitemap](https://github.com/cicirello/generate-sitemap) 
          GitHub action. Automated pull-request generated by 
          [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action.
        commit-message: "[generate-sitemap] [create-pull-request] automated change."
        delete-branch: true

나는 또한 원래 의도였던 내 personal website 에 사용하고 있으며 this workflow 활용합니다.

name: Generate sitemap 

on:
  push:
    branches:
      - development

jobs:
  sitemap_job:
    runs-on: ubuntu-latest
    name: Generate a sitemap
    steps:
    - name: Checkout the repo
      uses: actions/checkout@v2
      with:
        fetch-depth: 0 
    - name: Generate the sitemap
      id: sitemap
      uses: cicirello/[email protected]
      with:
        base-url-path: https://www.cicirello.org/
    - name: Output stats
      run: |
        echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
        echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
        echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}"
    - name: Create Pull Request
      uses: peter-evans/[email protected]
      with:
        title: "Automated sitemap update"
        body: > 
          Sitemap was updated by [generate-sitemap](https://github.com/cicirello/generate-sitemap) 
          GitHub action. Automated pull-request generated by 
          [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action.
        commit-message: "[generate-sitemap] [create-pull-request] automated change."
        delete-branch: true

추가 리소스/정보



현재 이 워크플로와 generate-sitemap 작업을 사용하고 있는 것으로 알고 있는 유일한 오픈 소스 프로젝트는 내 개인 웹 사이트 외에 두 개의 프로젝트(문서 웹 사이트 유지 관리용)입니다. 그 두 프로젝트는 다음과 같습니다.
  • Chips-n-Salsa
  • Java Permutation Tools
  • 좋은 웹페이지 즐겨찾기