◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。API 連携を足したアプリは移行先の確認を●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り36日。API 連携を足したアプリは移行先の確認を●SDK 58 ISSUE — Android ウィジェットが定期更新されない、Stripe が静的リンクになるなど初期報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/アプリ開発
◇ アプリ開発/2026-09-10中級

Rork のリポジトリに置く最初の EAS Workflow と、失敗した回にだけ届かない通知

Rork から書き出したリポジトリに .eas/workflows を二本置くまでの手順と、needs でつないだ通知が失敗した回にだけ届かなくなる理由を、手元で走る検査スクリプトの実行結果つきで書き残します。

EAS WorkflowsExpo227CI/CD9TestFlight15個人開発226Rork600

✦ プレミアム記事

夜中にビルドを一本投げ、通るのを待って、通ったら提出コマンドを打ちます。個人開発でアプリを何本か抱えていると、この順番が指の癖になってしまいます。手順書に残すほどでもない、けれど間違えると三十分が消える——その程度の作業が、アプリの本数だけ並んでいるのです。

先日、壁紙アプリの更新をひとつ出したあとで、同じ順番をもう一度打ちながら考えました。この順番こそ、自分ではなく機械に持たせるべきものではないか、と。

Rork から書き出したリポジトリは、その時点でもう普通の Expo プロジェクトです。手元に eas.json があって GitHub に載っているなら、EAS Workflows の設定ファイルを一枚足すだけで、この順番はそのまま自動化の対象になります。

ただ、私が最初に書いた一本は失敗しておりました。書式としては正しく、eas も受け取ってくれる形です。それでも、いちばん通知が欲しい場面でだけ黙る作りになっていたのです。

置き場所と、最初に効く二つの制約

設定ファイルは .eas/workflows/ に置きます。.eas ディレクトリは eas.json と同じ階層です。ここを一段間違えると、コマンドはファイルを見つけてくれません。

my-app
  .eas
    workflows
      pr-preview.yml
      release.yml
  eas.json
  app.json

拡張子は .yml か .yaml のいずれかで、ファイルサイズは 16 KiB 以下という上限があります。16 KiB は普通に書いていれば当たらない数字ですが、ジョブを足し続けて一枚にまとめたくなったときに効いてきます。一本のファイルに詰め込まず、目的ごとに分けておくほうが後で楽になります。私は用途ごとに一枚ずつ置く形をお勧めします。

もう一つ、書き始める前に知っておくと迷わないことがあります。トリガーの既定値は「書かなかったほう」が空になるという点です。on.push に branches も tags も書かなければ branches は ['*']、tags は [] として扱われます。ところが片方だけを書くと、書かなかったほうは [] になります。タグだけを指定したつもりで branches の行を消すと、ブランチ側の発火は完全に止まります。狙いどおりならよいのですが、私は最初これを取り違えていました。

PR を開いたらプレビュー更新が出るところまで

一本目は、プルリクエストを開いたらプレビュー用の更新を配信するものにします。手で eas update を打っていた作業がそのまま置き換わりますし、失敗しても本番には届きませんので、最初の一本として安心して試せます。

# .eas/workflows/pr-preview.yml
name: PR preview
on:
  pull_request:
    branches: ['*']
    paths:
      - app/**
      - package.json
      - '!**/*.md'
 
jobs:
  publish_preview:
    type: update
    environment: preview
    params:
      branch: pr-${{ github.event.pull_request.number }}
      message: ${{ github.event.pull_request.title }}
    hooks:
      before_update:
        - name: 型を通してから配信します
          run: npx tsc --noEmit

読み方を順に置いておきます。paths は監視するパスで、先頭に ! を付けると除外になります。README だけを直した PR でビルド枠を使わずに済むのは、地味ですが効きます。branches を省略すると ['*'] になりますので、ここは書かなくても動きます。あえて書いているのは、後から読む自分のためです。

type: update は eas update に対応するジョブで、branch と channel は同時に指定できません。今回は PR 番号からブランチ名を作っておりますので branch のほうを使います。

そして hooks です。ここが最初につまずいた場所でした。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦PR を開けばプレビュー更新が出て、タグを打てば TestFlight まで進む経路を、自分のリポジトリに二本の YAML で置けるようになります
✦失敗した回にだけ通知が来ない CI を、組み上げてしまう前に避けられるようになります
✦needs と after、steps を書けるジョブ、env が効かないジョブの線引きを、push する前に手元の検査で潰せるようになります
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◇ アプリ開発2026-08-16
グラフが壊れて見えるのは、データが多いときではなく最初の数日でした
記録アプリの折れ線グラフが、データの少ない最初の数日だけ線が消える。原因はY軸の幅が0になり座標がNaNになることでした。実測した挙動と、描画前に置く小さな正規化層を紹介します。
◇ アプリ開発2026-08-15
TestFlight の外部テストと段階公開、個人開発ではどちらに時間を使うか
Rork で作ったアプリを他人に配るとき、外部テスターを募集する道と段階公開に受け止めさせる道の二つがあります。個人開発の限られた時間をどちらに置くかを、配布が止まる条件と事前検証すべき三領域から整理しました。
◇ アプリ開発2026-10-22
Stripe を入れた Expo SDK 58 で pod install が止まる — precompiled modules を切るか、直るまで待つかの判断
useFrameworks を dynamic にしているのに Stripe が static と言われて SDK 58 の iOS ビルドが止まる件を、報告された条件と三つの逃げ道、切り分けの点検スクリプトで整理します。