Skip to main content

GitHub Pages에서 사용자 지정 워크플로 사용

워크플로 파일을 만들거나 미리 정의된 워크플로에서 선택하여 GitHub Actions 및 GitHub Pages을(를) 사용할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

GitHub Pages은(는) 조직의 GitHub Free 및 GitHub Free이(가) 있는 퍼블릭 리포지토리와 GitHub Pro, GitHub Team, GitHub Enterprise Cloud 및 GitHub Enterprise Server의 퍼블릭 및 프라이빗 리포지토리에서 사용할 수 있습니다. 자세한 내용은 “GitHub의 플랜”를 참조하세요.

GitHub Pages은(는) 이제 GitHub Actions을(를) 사용하여 Jekyll 빌드를 실행합니다. 빌드의 원본으로 분기를 사용하는 경우 기본 제공 Jekyll 워크플로를 사용하려면 리포지토리에서 GitHub Actions을(를) 사용하도록 설정해야 합니다. 또는 GitHub Actions을(를) 사용할 수 없거나 사용하지 않도록 설정한 경우 원본 분기의 루트에 .nojekyll 파일을 추가하면 Jekyll 빌드 프로세스를 무시하고 콘텐츠를 직접 배포합니다. GitHub Actions 사용에 대한 자세한 내용은 "리포지토리에 대한 GitHub Actions 설정 관리"을 참조하세요.

사용자 지정 워크플로 정보

사용자 지정 워크플로를 사용하면 GitHub Actions을(를) 사용하여 GitHub Pages 사이트를 빌드할 수 있습니다. 워크플로 파일을 통해 사용하려는 분기를 계속 선택할 수 있지만, 사용자 지정 워크플로를 사용하면 훨씬 더 많은 작업을 수행할 수 있습니다. 사용자 지정 워크플로 사용을 시작하려면 먼저 현재 리포지토리에 대해 활성화해야 합니다. 자세한 내용은 "GitHub Pages 사이트에 대한 게시 원본 구성"을(를) 참조하세요.

configure-pages 작업 구성

GitHub Actions은(는) 웹 사이트에 대한 다른 메타데이터도 수집할 수 있는 configure-pages 작업을 통해 GitHub Pages을(를) 사용할 수 설정합니다. 자세한 내용은 configure-pages 작업을 참조하세요.

작업을 사용하려면 이 조각을 원하는 워크플로에 있는 jobs의 아래에 배치합니다.

- name: Configure GitHub Pages
  uses: actions/configure-pages@v3

이 작업은 고정적인 사이트 생성기에서 GitHub Pages(으)로의 배포를 지원하는 데 도움이 됩니다. 이 프로세스를 덜 반복적으로 만들려면 가장 널리 사용되는 일부 고정적인 사이트 생성기에 워크플로 템플릿을 사용할 수 있습니다. 자세한 내용은 "Using workflow templates"을(를) 참조하세요.

upload-pages-artifact 작업 구성

upload-pages-artifact 작업을 통해 아티팩트를 패키징하고 업로드할 수 있습니다. GitHub Pages 아티팩트는 단일 tar 파일을 포함하는 압축된 gzip 보관 파일이어야 합니다. tar 파일 크기는 10GB 미만이어야 하며 기호 또는 하드 링크는 포함하지 않아야 합니다. 자세한 내용은 upload-pages-artifact 작업을 참조하세요.

현재 워크플로에서 작업을 사용하려면 이 조각을 jobs 아래에 배치하세요.

- name: Upload GitHub Pages artifact
  uses: actions/upload-pages-artifact@v1

GitHub Pages 아티팩트 배포

deploy-pages 작업은 아티팩트 배포에 필요한 설정을 처리합니다. 적절한 기능을 보장하려면 다음 요구 사항을 충족해야 합니다.

  • 작업에는 최소한 pages: writeid-token: write 권한이 있어야 합니다.
  • needs 매개 변수는 빌드 단계의 id(으)로 설정해야 합니다. 이 매개 변수를 설정하지 않으면 생성되지 않은 아티팩트를 지속적으로 검색하는 독립적인 배포로 이어질 수 있습니다.
  • environment은(는) 분기/배포 보호 규칙을 적용하려면 반드시 설정해야 합니다. 기본 환경은 github-pages입니다.
  • 페이지의 URL을 출력으로 지정하려면 url: 필드를 활용합니다.

자세한 내용은 deploy-pages 작업을 참조하세요.

# ...

jobs:
  deploy:
    permissions:
      contents: read
      pages: write
      id-token: write
    runs-on: ubuntu-latest
    needs: jekyll-build
    environment:
      name: github-pages
      url: ${{steps.deployment.outputs.page_url}}
    steps:
      - name: Deploy artifact
        id: deployment
        uses: actions/deploy-pages@v1
# ...

별도의 빌드 및 배포 작업 연결

단일 워크플로 파일에서 사용자 builddeploy 작업을 연결할 수 있으므로 동일한 결과를 얻기 위해 두 개의 파일을 별도로 만들지 않아도 됩니다. 워크플로 파일을 시작하려면 jobs 아래에서 build을(를) 정의하고 귀하의 작업에 대한 deploy 작업을 실행할 수 있습니다.

# ...

jobs:
  # Build job
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Pages
        id: pages
        uses: actions/configure-pages@v3
      - name: Build with Jekyll
        uses: actions/jekyll-build-pages@v1
        with:
          source: ./
          destination: ./_site
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v2

  # Deployment job
  deploy:
    environment:
      name: github-pages
      url: ${{steps.deployment.outputs.page_url}}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2
# ...

빌드 프로세스가 필요하지 않은 특정한 경우에는 모든 항목을 단일 작업으로 결합하도록 선택할 수 있습니다. 결과적으로, 배포 단계에만 집중하게 됩니다.

# ...

jobs:
  # Single deploy job no building
  deploy:
    environment:
      name: github-pages
      url: ${{steps.deployment.outputs.page_url}}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Pages
        uses: actions/configure-pages@v3
      - name: Upload Artifact
        uses: actions/upload-pages-artifact@v2
        with:
          # upload entire directory
          path: '.'
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2

# ...

다른 실행기에서 순차적으로 또는 병렬로 실행되도록 작업을 정의할 수 있습니다. 자세한 내용은 "워크플로에서 수행하는 작업 선택" 항목을 참조하세요.