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 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

# ...

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