Spaces:
Sleeping
Sleeping
File size: 3,292 Bytes
ad280f2 a3a5c3f ad280f2 a86e8f9 ad280f2 a86e8f9 0313122 ad280f2 0313122 d8f6e54 e69a2db 0313122 472deed e69a2db 472deed 3d3bbe6 a86e8f9 3d3bbe6 0313122 a86e8f9 83b3608 0313122 ad280f2 1b73e22 e69a2db 1dc487d ad280f2 e69a2db a86e8f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# この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
|