うみゅ
Update deploy.yml
a86e8f9 unverified
raw
history blame
3.29 kB
# このGitHub Actionsのワークフローは、HuggingFaceのSpace(以下、Space)にデプロイを行うためのものです。
# 具体的には、GitHubのリポジトリをチェックアウトし、その内容をSpaceにgit pushします。
# 詳細な手順はHuggingFaceの公式ドキュメントを参照してください: https://huggingface.co/docs/hub/spaces-github-actions
## ワークフローの設定手順
# 1, HuggingFaceで「Fine-grained (custom)」タイプのアクセストークンを生成します。このトークンは認証に使用します。
# 生成はこちらから: https://huggingface.co/settings/tokens
# 2, デプロイ時の環境設定を作成します。
# 「Settings」タブの「Environments」 > 「new Environment」 > Name に「production」を入力して新しい環境設定を作成します。
# Environments / Configure production画面で設定を行います。
# 2-1, Environment secretsの設定を行います。生成したアクセストークンと他の情報を環境変数として設定します。
# 設定する変数は以下の通りです:
# HF_TOKEN: HuggingFaceで生成したアクセストークン
# HF_USER_NAME: HuggingFaceのユーザー名
# HF_SPACE_NAME: Spaceの名前
# 2-2, Deployment branches and tagsでmainブランチのみに設定を行います。
# ブランチにmainを選択します。
# 2-3, Deployment protection rulesを設定します。
name: "Deploy"
on:
# mainブランチへのpushをトリガーにします。
push:
branches: [ "main" ]
# Actionsタブからワークフローの手動実行を許可します。
workflow_dispatch:
jobs:
build:
uses: './.github/workflows/python-app.yml'
sync-to-hub:
needs: build # 'build'ジョブが成功した後にのみ'sync-to-hub'ジョブを開始します
# 'concurrency'を使用して、同時に実行できるジョブの数を制限します。
# この設定により、同じワークフローの複数のジョブが同時に実行されるのを防ぎます。
# https://docs.github.com/ja/actions/using-workflows/workflow-syntax-for-github-actions#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow
# トップレベルに'concurrency'記述時は、デッドロックが発生します。そのため、この位置で定義します。
# > Deploy
# > Canceling since a deadlock for concurrency group 'Deploy-refs/heads/main' was detected between 'top level workflow' and 'build'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
# productionの設定情報を使用します。これにより、デプロイ時の環境変数や環境保護ルールを適用できます。
environment: production
steps:
# GitHubのリポジトリをチェックアウトします。
- uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true
# チェックアウトしたコードをSpaceにgit pushします。
- name: Push to hub
run: git push https://${{ secrets.HF_USER_NAME }}:${{ secrets.HF_TOKEN }}@huggingface.co/spaces/${{ secrets.HF_USER_NAME }}/${{ secrets.HF_SPACE_NAME }} main