AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業プレミアムRSS
© 2026 ainew.jp特定商取引法に基づく表記
ニュース一覧元記事を開く
Hugging Face Blog·2026年6月9日 09:00·約12分で読める

GitHub の CI を Hugging Face Jobs へ移行する方法

#CI/CD#GPU 計算#サーバーレスインフラ#DevOps#Hugging Face Jobs
TL;DR

Hugging Face は、GitHub Actions のワークフローを Hugging Face Jobs と連携させることで、GPU 環境での CI/CD を可能にし、テスト実行時間を約 30% 短縮する新しいインテグレーション手法を公開した。

AI深層分析2026年6月10日 23:14
4
重要/ 5段階
深度40%
4
関連度30%
5
実用性20%
5
革新性10%
3

キーポイント

1

GitHub Actions の既存制限の克服

従来の GitHub-hosted runners は GPU アクセスが困難で、メンテナンスによる停止リスクや汎用機による速度不足という課題があった。

2

Hugging Face Jobs との連携アーキテクチャ

CI の制御は GitHub Actions に残しつつ、実際のジョブ実行を Hugging Face のサーバーレスインフラ(Jobs)にオフロードするハイブリッド構成を採用。

3

GPU 環境での CI/CD 実現とパフォーマンス向上

CUDA ハードウェアが必要なテストスイートを可能にし、CPU ジョブの処理時間を約 30% 短縮し、リアルタイムログストリーミングを実現した。

4

開発者向け実装ガイドの提供

ブラウザベースの手順に加え、CLI を使用して自動化する手順も併記されており、エージェントやスクリプトによる導入も容易にしている。

5

GitHub App の作成と設定

Dispatcher Space から GitHub App を作成し、CI が実行されるリポジトリにインストールする必要があります。

6

ワークフローの最小限の変更

CI 移行には `runs-on` の値を `ubuntu-latest` から `hf-jobs-cpu-upgrade` や GPU ラベルに変更するだけで済みます。

7

Docker イメージの最適化によるパフォーマンス向上

デフォルトの Ubuntu イメージではシステムパッケージのインストールに時間がかかるため、Playwright や GPU 要件を含む Microsoft Playwright イメージや NVIDIA CUDA イメージを使用することで実行速度を改善しました。

影響分析・編集コメントを表示

影響分析

この発表は、AI モデル開発において不可欠な GPU リソースを CI/CD パイプラインにシームレスに統合する新たな標準を示唆しています。開発者が GitHub の利便性を維持しつつ、高コストな GPU インフラの管理負担から解放され、テストの信頼性と速度を同時に向上させる手段を提供します。これにより、大規模モデルや複雑なパイプラインを持つプロジェクトのデプロイサイクルが加速される可能性があります。

編集コメント

GitHub の標準機能では対応が難しかった GPU 環境での CI/CD を、Hugging Face のインフラを活用して解決する実用的なアプローチです。特に大規模モデル開発を行うチームにとって、テストの高速化とリソース確保の両面で即座に適用可能な価値があります。

記事一覧に戻る

GitHub リポジトリをお持ちで、GitHub Actions が有効になっている場合、おそらく GitHub 管理のランナーを CI に使用しているでしょう。これは多くのプロジェクトにおけるデフォルト設定です。シンプルだからです:ワークフローを追加し、runs-on: ubuntu-latest と記述するだけで、GitHub がマシンを提供してくれます。

このデフォルトは便利ですが、同時に制限もあります。GitHub Actions は遅くなったり、メンテナンスのためにダウンしたりすることがあります。ホストされたマシンは汎用的であり、GPU アクセスは、オープンソースプロジェクトの多くが簡単にオンにできるようなものではありません。Trackio の場合、これらの制限が問題となり始めました。私たちは、基本的なユニットテストやフロントエンドチェックのための信頼性の高い CPU 環境での CI と、実際の CUDA ハードウェア上で実行する必要があるテスト用の GPU 環境での CI の両方を必要としていました。

そこで別の手段を構築しました:CI の管理は GitHub Actions に任せる一方で、ジョブの実行には Hugging Face Jobs を利用します。

その結果、Trackio の CI は Hugging Face Jobs で実行され、リアルタイムログがストリーミングされるようになりました。これにより、CPU ジョブの CI 時間が約 30% 短縮され、GPU マシン上で実行される全く新しいテストスイートが可能になりました!

この記事では、あなたの GitHub リポジトリでも同じセットアップを再現するための手順を順を追って説明します。エージェントを使用している場合は、この記事を参照先として指定してください。私たち人間のためにブラウザベースの手順とともに CLI による指示も提供しています。

それでは、Hugging Face Jobs の簡単な紹介から始めましょう!

Hugging Face Jobs とは?

Hugging Face Jobs を利用すると、ほぼあらゆるハードウェア構成で Hugging Face のサーバーレスインフラ上でコマンドやスクリプトを実行できます。ジョブ(Job)とは本質的に以下の要素から成り立ちます:

  • 実行するコマンド
  • Docker Hub または Hugging Face Space から取得した Docker イメージ
  • CPU、t4-small、h200 GPU など、特定のハードウェア構成
  • オプションの環境変数とシークレット

例えば、以下のように実行できます:

hf jobs run python:3.12 python -c "print('Hello world')"

または

hf jobs uv run --flavor a10g-small "https://raw.githubusercontent.com/huggingface/trl/main/trl/scripts/sft.py"

これにより、Jobs は CI(継続的インテグレーション)に自然な適合性を示します。CI ジョブはすでにコマンド駆動型であり、クリーンな環境で実行されることが多く、特に適切なハードウェアを選択することで大きな恩恵を受けます。ML ライブラリにおいては、GPU のケースが特に魅力的です:独自の常時稼働ランナーを維持することなく、実際の GPU ハードウェア上でテストスイートを実行できます。

重要なステップは、GitHub Actions を HF Jobs に接続することであり、これは以下で説明します。

アーキテクチャ

このセットアップのために、huggingface/jobs-actions という小さなブリッジを作成しました。これは GitHub Actions のジョブを、HF Job 内で実行される一時的なセルフホストランナーに変換する役割を果たします。

完全なフローは以下のようになります:

  • プルリクエストが GitHub Actions ワークフローをトリガーします。
  • GitHub は、runs-on ラベル(例:hf-jobs-cpu-upgrade や hf-jobs-t4-small)が利用できないジョブをキューに積み、GitHub App を介してディスパッチャーへ署名付きの workflow_job.queued ウェブフックを送信します。
  • ディスパッチャー Space はウェブフックを検証し、hf-jobs-* ラベルを確認した上で、短期有効な GitHub ランナー登録トークンを発行し、対応するハードウェア上で HF Job を起動します。
  • HF Job は一時的な GitHub Actions ランナーをブートし、そのワンショットトークンを使用してリポジトリに登録します。
  • GitHub は保留中のワークフロージョブをそのランナーに割り当てます。ランナーは CI ジョブを実行し、ステータスを GitHub に報告して終了します。

GitHub の視点から見れば、これは単なるセルフホスト型ランナーです。Hugging Face の視点から見れば、リポジトリの GitHub Actions からワークフローステップを実行するためにコンテナを起動する単なる Job です。

ステップ 1: ディスパッチャー Space を複製する

まず必要となるのはディスパッチャーです。これは、GitHub の workflow_job ウェブフックイベントを受信し、応答として HF Job を起動する小さな Docker Space です。

この Space は最初に作成してください。なぜなら、GitHub App にはウェブフック URL が必要であり、その URL は Space から取得されるためです。この Space は、ご自身のネームスペース内、または書き込み権限を持つ Hugging Face の組織内に配置する必要があります。

ウェブセットアップ

huggingface/jobs-actions-dispatcher にアクセスし、この Space を複製をクリックしてください。

image
image

使用:

Owner: あなたの HF ユーザー名または組織

Name: jobs-actions-dispatcher

Hardware: cpu-upgrade

cpu-upgrade を使用して本番の CI を実行することで、ディスパッチャーが GitHub の Webhook に対して常に利用可能になるようにします。cpu-basic はテスト用には問題ありませんし、おそらく動作するでしょう。ただし、非アクティブ状態になるとスリープしてしまうため、GitHub の Webhook が起動中に到着すると、ワークフローが永遠にキューに残ったままになる可能性があります。

ビルドが完了したら、複製された Space を開きます。「Required Space secrets」というセクションが表示されますが、今回は無視してください。ランディングページには、次のステップで必要な GitHub App の Webhook URL が表示されます。以下のような形式になります:

https://YOUR-HF-NAMESPACE-jobs-actions-dispatcher.hf.space/webhook

CLI setup

エージェントを使用してディスパッチャーの Space を設定したい場合や、CLI ワークフローを利用したい場合は以下の手順に従ってください:

export HF_NAMESPACE=your-hf-user-or-org

export SPACE_ID="$HF_NAMESPACE/jobs-actions-dispatcher"

hf repo duplicate huggingface/jobs-actions-dispatcher "$SPACE_ID" \

--type space \

--flavor cpu-upgrade \

--exist-ok

その後、以下を設定します:

export DISPATCHER_URL="https://${HF_NAMESPACE}-jobs-actions-dispatcher.hf.space"

Step 2: Create and install the GitHub App

次に、ディスパッチャーの Space 自体から GitHub App を作成してインストールしてください。この App は、キュー待ちのワークフロージョブを監視し、一時的なセルフホストランナー登録トークンを作成する権限が必要です。

Web setup

複製したディスパッチャーの Space を開きます:

https://YOUR-HF-NAMESPACE-jobs-actions-dispatcher.hf.space

設定フォームには、HF Jobs で実行させるべき CI の対象となる GitHub リポジトリを入力してください:

YOUR-GITHUB-ORG/YOUR-REPO

次に、GitHub App を作成するためのボタンをクリックしてください。GitHub はアプリの名前を選択するよう求めますが、名前は GitHub アカウントまたは組織内で利用可能であれば何でも構いません。送信後、最終画面では、hf CLI を使用してアプリの認証情報を dispatcher Space にアップロードする方法が正確に示されます。

重要な注意: Jobs を起動する権限を持つ Hugging Face トークン を提供する必要があります。これは、Jobs の課金対象となる個人アカウントまたは組織に対応するトークンです。このトークンは、dispatcher Space 内の HF_TOKEN シークレットとして保存してください。

最後に、Space に入力したのと同じ GitHub リポジトリにアプリをインストールします。Trackio のセットアップでは、gradio-app/trackio にインストールしました。

エージェント支援セットアップ

GitHub App マニフェストフローは依然としてブラウザベースですが、エージェントも同様に Space ドライブ型のパスに従うことができます:

export HF_NAMESPACE=your-hf-user-or-org

export GITHUB_REPO=YOUR-GITHUB-ORG/YOUR-REPO

open "https://${HF_NAMESPACE}-jobs-actions-dispatcher.hf.space"

$GITHUB_REPO を Space に貼り付け、GitHub App 作成ボタンをクリックし、利用可能なアプリ名を任意に選択して、生成された GitHub の指示に従ってください。

App が作成されたら、App 設定ページからリポジトリにインストールしてください。GitHub 組織の場合、インストール設定は以下の場所にあります:

https://github.com/organizations/YOUR-GITHUB-ORG/settings/installations

ステップ 3: 最終 dispatcher 設定

この時点で、ディスパッチャーの Space は設定済みのはずです。GitHub App のセットアップフローは、App 認証情報、Webhook シークレット、Hugging Face トークンを Space にアップロードするコマンドを生成しました。

image
image

デフォルトでは、HF Jobs はディスパッチャーの Space と同じ名前空間(namespace)で起動されます。必要に応じて、Jobs の請求先を別の Hugging Face ユーザーや組織にしたい場合は、Space 変数として HF_NAMESPACE を設定してください:

export SPACE_ID=YOUR-HF-NAMESPACE/jobs-actions-dispatcher

hf spaces variables add "$SPACE_ID" -e HF_NAMESPACE=your-billing-namespace

hf spaces restart "$SPACE_ID"

ステップ 2 で設定したトークンは、この名前空間に対応している必要があります。

ステップ 4: runs-on の変更

実際のワークフローの変更は非常に小さく、以下のように記述する代わりに:

runs-on: ubuntu-latest

disパッチャーが処理するラベルのいずれかを使用します:

runs-on: hf-jobs-cpu-upgrade

GPU テストを行う場合は、GPU 対応のラベルを使用してください:

runs-on: hf-jobs-t4-small

HF Jobs で実行したい GitHub Action は、この 1 行の変更だけですべて完了です!

ステップ 5: 動作確認

CLI から最小限のスモークテスト用ワークフローを追加するには:

mkdir -p .github/workflows

cat > .github/workflows/hf-jobs-test.yml <<'EOF'

name: HF Jobs Test

on:

pull_request:

push:

branches: [main]

workflow_dispatch:

jobs:

test:

runs-on: hf-jobs-cpu-upgrade

steps:

  • uses: actions/checkout@v4
  • run: echo "Hello from Hugging Face Jobs"

EOF

git add .github/workflows/hf-jobs-test.yml

git commit -m "Run CI on Hugging Face Jobs"

git push

CLI から検証するには:

gh run list --repo YOUR-GITHUB-ORG/YOUR-REPO --limit 5

hf jobs ps --namespace "$HF_NAMESPACE"

hf spaces logs "$SPACE_ID"

通常の GitHub Action のようにログを確認できるはずです。例えば、この Trackio PR #565 などです。

これで完了です!

*Docker イメージの選び方に関する注記*

最初の CPU 設定では ubuntu:22.04 を使用し、実行ごとに不足しているシステムパッケージをインストールしていました。これは動作しましたが、必要以上に時間がかかっていました。GitHub の ubuntu-latest イメージにはデフォルトで多くの開発者向けツールが含まれていますが、素の Ubuntu イメージには含まれていません。

Trackio では、UI テストに Playwright ブラウザ、Node、ffmpeg、sqlite、git、および通常の Linux ビルド依存関係が必要です。Hugging Face Jobs は任意の Docker イメージ をサポートしているため、Microsoft Playwright イメージへ切り替えました。これがうまく機能しました:

mcr.microsoft.com/playwright:v1.60.0-jammy

GPU ジョブには以下を使用しました:

nvidia/cuda:12.4.0-runtime-ubuntu22.04

結果

Trackio CI の数値は以下の通りです:

ランナーセットアップ

実行時間

GitHub 平均との比較

GitHub ubuntu-latest ベースライン

1m40s

ベースライン

HF Jobs CPU、Playwright イメージ

1m10s

-30s、約 30% 高速化

HF Jobs GPU、t4-small ラベル

45s

GitHub ホスト GPU ベースラインなし

最大の成果は GPU CI の実現でした。Trackio の GPU チェックを HF Jobs で実行し、45 秒で完了しました。その間隔における t4-small レートでのコストは 1 セント未満です。

CPU の結果も期待通りでした。適切なイメージを使用すれば、Linux テストジョブは GitHub ホストのベースラインよりも高速でした。これは、HF Jobs がカスタムイメージやアクセラレーターを必要とする ML プロジェクトにとって実用的な CI バックエンドとなり得ることを示唆しています。

ログについても嬉しい驚きがありました。GitHub Actions のログも有用ですが、大規模なログの場合、Web UI は重くなりがちです。一方、HF Jobs のログは CLI から簡単に取得できます:

hf jobs logs <job_id> > logs.txt

これにより、ローカルツールやコーディングエージェントで容易に検査できるようになります。また、今回の移行プロジェクトでは、GitHub Actions のジョブログを HF Job ログにもミラーリングしました。どちらのシステムでも実行デバッグに必要な十分な情報が得られるようにしています。

最後に、Trackio の CI では必要ありませんでしたが、HF Jobs は ボリュームのマウント もサポートしており、CI の一部として Hugging Face からデータセットやモデルを高速に読み込む必要がある場合に非常に役立ちます。

これで、GitHub Actions を実行するために HF Jobs を試すために必要な情報はすべてお伝えできたはずです!

原文を表示

Back to Articles

If you have a GitHub repository and you have GitHub Actions enabled, you probably use GitHub-hosted runners for CI. That is the default for many projects because it is simple: add a workflow, write runs-on: ubuntu-latest, and GitHub gives you a machine.

That default is convenient, but it also has limits. GitHub Actions can be slow or down for maintenance, the hosted machines are generic, and GPU access is not something most open-source projects can just turn on. For Trackio, those limits started to matter. We wanted both reliable CPU CI for basic unit tests and frontend checks, but also GPU CI for tests that need to run on actual CUDA hardware.

So built an alternative: keep GitHub Actions in charge of CI, but run the jobs on Hugging Face Jobs.

The result: Trackio's CI now runs on Hugging Face Jobs and streams back real-time logs, cutting our CI time for CPU jobs by about 30% and enabling a whole new test suite that runs on GPU machines!

In this article, we explain step-by-step how to recreate the same setup for your GitHub repo. If you are using an agent, you can point it to this article, since we provide CLI instructions alongside browser-based instructions for us humans.

Let's start with a quick intro to Hugging Face Jobs!

What is Hugging Face Jobs?

Hugging Face Jobs lets you run commands or scripts on Hugging Face's serverless infrastructure with almost any hardware flavor. A Job is essentially:

  • a command to run
  • a Docker image, from Docker Hub or a Hugging Face Space
  • a hardware flavor, such as CPU or t4-small or h200 GPU
  • optional environment variables and secrets

For example, you can run:

code
hf jobs run python:3.12 python -c "print('Hello world')"

or

code
hf jobs uv run --flavor a10g-small "https://raw.githubusercontent.com/huggingface/trl/main/trl/scripts/sft.py" 

That makes Jobs a natural fit for CI. CI jobs are already command-driven, already run in clean environments, and often benefit from choosing exactly the right hardware. For ML libraries, the GPU case is especially compelling: you can run a test suite on real GPU hardware without maintaining your own always-on runner.

The key step is connecting GitHub Actions to HF Jobs, which we describe below.

The architecture

For this setup, we created huggingface/jobs-actions, a small bridge that turns a GitHub Actions job into an ephemeral self-hosted runner running inside an HF Job.

The complete flow looks like this:

  • A pull request triggers a GitHub Actions workflow.
  • GitHub queues any job whose runs-on label is not available, for example hf-jobs-cpu-upgrade or hf-jobs-t4-small, and sends a signed workflow_job.queued webhook to the dispatcher through the GitHub App.
  • The dispatcher Space verifies the webhook, checks for an hf-jobs-* label, mints a short-lived GitHub runner registration token, and starts an HF Job on the matching hardware.
  • The HF Job boots an ephemeral GitHub Actions runner and registers it with the repo using that one-shot token.
  • GitHub assigns the pending workflow job to that runner; the runner executes the CI job, reports status back to GitHub, and exits.

From GitHub's point of view, this is just a self-hosted runner. From Hugging Face's point of view, it is just a Job that launches a container to run the workflow steps from the repo’s GitHub Actions.

Step 1: Duplicate the dispatcher Space

The first thing you need is the dispatcher. This is a small Docker Space that receives GitHub workflow_job webhook events and launches HF Jobs in response.

Create this first because the GitHub App needs a webhook URL, and that URL comes from the Space. This Space should be under your own namespace or under a Hugging Face org that you have write access to.

Web setup

Go to huggingface/jobs-actions-dispatcher and click Duplicate this Space.

image
image

Use:

code
Owner: your HF user or org
Name: jobs-actions-dispatcher
Hardware: cpu-upgrade

Use cpu-upgrade for real CI so the dispatcher stays available for GitHub webhooks. cpu-basic is fine for testing and will probably work, but it can sleep after inactivity; if GitHub's webhook arrives while it is waking up, the workflow may stay queued forever.

After it builds, open the duplicated Space. You will see a section that says "Required Space secrets," which you can ignore for now. The landing page should display the GitHub App webhook URL you need in the next step. It will look like this:

code
https://YOUR-HF-NAMESPACE-jobs-actions-dispatcher.hf.space/webhook

CLI setup

If you'd prefer to set up the dispatcher Space with an agent or use a CLI workflow:

code
export HF_NAMESPACE=your-hf-user-or-org
export SPACE_ID="$HF_NAMESPACE/jobs-actions-dispatcher"

hf repo duplicate huggingface/jobs-actions-dispatcher "$SPACE_ID" \
  --type space \
  --flavor cpu-upgrade \
  --exist-ok

Then set:

code
export DISPATCHER_URL="https://${HF_NAMESPACE}-jobs-actions-dispatcher.hf.space"

Step 2: Create and install the GitHub App

Next, create and install the GitHub App from the dispatcher Space itself. This App needs permission to listen for queued workflow jobs and create ephemeral self-hosted runner registration tokens.

Web setup

Open your duplicated dispatcher Space:

code
https://YOUR-HF-NAMESPACE-jobs-actions-dispatcher.hf.space

In the setup form, enter the GitHub repo whose CI should run on HF Jobs:

code
YOUR-GITHUB-ORG/YOUR-REPO

Then click the button to create the GitHub App. GitHub will ask you to choose a name for the App; the name can be anything, as long as it is available in your GitHub account or org. After you submit, the final screen tells you exactly how to upload the App credentials to the dispatcher Space with the hf CLI.

Important note: you will need to provide an Hugging Face token that has permissions to launch Jobs, corresponding to your personal account or an org under which Jobs should be charged. This token should be saved as the HF_TOKEN secret in your dispatcher Space.

Finally, you will install the App on the same GitHub repo you entered in the Space. In the Trackio setup, we installed it on gradio-app/trackio.

Agent-assisted setup

The GitHub App manifest flow is still browser-based, but an agent can follow the same Space-driven path:

code
export HF_NAMESPACE=your-hf-user-or-org
export GITHUB_REPO=YOUR-GITHUB-ORG/YOUR-REPO
open "https://${HF_NAMESPACE}-jobs-actions-dispatcher.hf.space"

Paste $GITHUB_REPO into the Space, click the GitHub App creation button, choose any available App name, and follow the generated GitHub instructions.

After the App exists, install it on your repo from the App settings page. For a GitHub org, the installation settings are under:

code
https://github.com/organizations/YOUR-GITHUB-ORG/settings/installations

Step 3: Final dispatcher settings

At this point, the dispatcher Space should be configured. The GitHub App setup flow generated the commands that upload the App credentials, webhook secret, and Hugging Face token to the Space.

image
image

By default, HF Jobs are launched under the same namespace as the dispatcher Space. Optionally, set HF_NAMESPACE as a Space variable if you want to bill jobs to a different Hugging Face user or org:

code
export SPACE_ID=YOUR-HF-NAMESPACE/jobs-actions-dispatcher
hf spaces variables add "$SPACE_ID" -e HF_NAMESPACE=your-billing-namespace
hf spaces restart "$SPACE_ID"

The token you set in Step 2 should correspond to this namespace.

Step 4: Change runs-on

The actual workflow change is small. Instead of:

code
runs-on: ubuntu-latest

use one of the labels handled by the dispatcher:

code
runs-on: hf-jobs-cpu-upgrade

For GPU tests, use a GPU label:

code
runs-on: hf-jobs-t4-small

For any GitHub Action you'd like to run on HF Jobs, this 1-line change is all you need!

Step 5: Test it out

To add a minimal smoke-test workflow from the CLI:

code
mkdir -p .github/workflows
cat > .github/workflows/hf-jobs-test.yml <<'EOF'
name: HF Jobs Test

on:
  pull_request:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  test:
    runs-on: hf-jobs-cpu-upgrade
    steps:
      - uses: actions/checkout@v4
      - run: echo "Hello from Hugging Face Jobs"
EOF

git add .github/workflows/hf-jobs-test.yml
git commit -m "Run CI on Hugging Face Jobs"
git push

To verify from the CLI:

code
gh run list --repo YOUR-GITHUB-ORG/YOUR-REPO --limit 5
hf jobs ps --namespace "$HF_NAMESPACE"
hf spaces logs "$SPACE_ID"

You should be able to see logs just like a regular GitHub Action—for example, in this Trackio PR #565.

And that's it!

*Note on choosing the right Docker image*

Our first CPU setup used ubuntu:22.04 and installed missing system packages during every run. That worked, but it was slower than it needed to be. GitHub's ubuntu-latest image includes a lot of developer tooling by default; a bare Ubuntu image does not.

For Trackio, the UI tests need Playwright browsers, Node, ffmpeg, sqlite, git, and normal Linux build dependencies. Hugging Face Jobs supports using any Docker image, so we switched to the Microsoft Playwright image, which worked well:

code
mcr.microsoft.com/playwright:v1.60.0-jammy

For GPU jobs, we used:

code
nvidia/cuda:12.4.0-runtime-ubuntu22.04

Results

Here are the numbers from the Trackio CI:

Runner setup

Runtime

Compared to GitHub average

GitHub ubuntu-latest baseline

1m40s

baseline

HF Jobs CPU, Playwright image

1m10s

-30s, about 30% faster

HF Jobs GPU, t4-small label

45s

no GitHub-hosted GPU baseline

The biggest win was GPU CI. The Trackio GPU check ran on HF Jobs and passed in 45s, costing less than a cent at the t4-small rate for that duration.

The CPU result was also encouraging. With the right image, the Linux test job was faster than the GitHub-hosted baseline. That suggests HF Jobs can be a practical CI backend, especially for ML projects that need custom images or accelerators.

Logs were another pleasant surprise. GitHub Actions logs are useful, but the web UI can be heavy for large logs. HF Jobs logs are easy to fetch from the CLI:

code
hf jobs logs <job_id> > logs.txt

That makes them easy to inspect with local tools or coding agents. In our bridge, we also mirrored the GitHub Actions job log into the HF Job log, so either system had enough information to debug a run.

Finally, although we didn't need them for Trackio's CI, HF Jobs also supports mounting volumes, which can be very helpful if you need to load datasets or models from Hugging Face quickly as part of your CI.

Hopefully, this gives you all you need to try HF Jobs for running your GitHub Actions!

この記事をシェア

関連記事

Vercel Blog★32026年6月17日 09:00

CLI のデプロイ制限が撤廃されました

Vercel が CLI ツールのデプロイに関する制限を撤廃し、開発者がより柔軟にアプリケーションを公開できるようになりました。

Vercel Blog★32026年6月2日 15:00

リポジトリ内の全プロジェクトの Git 設定を編集可能に

Vercel は、モノレポで多数のプロジェクトを展開するユーザー向けに、各プロジェクトの Git 設定(コミットステータスやリポジトリディスパッチイベントなど)を一括で管理・適用できる機能を追加した。これにより、個別の設定画面へのアクセスが不要となり、効率的な運用が可能になった。

Vercel Blog★32026年6月2日 03:30

Elastic Build Machines がメモリ不足ビルドから保護へ

Vercel は、ビルドのメモリ使用量を監視し、メモリ不足による失敗を防ぐため自動的にマシンをアップグレードする機能を Elastic Build Machines に導入した。これにより、高速だがメモリ集約的なビルドでもダウングレードされなくなる。

今日のまとめ

AI日報で今日の重要ニュースをまとめ読み

ニュース一覧に戻る元記事を読む