0.4.22 の新機能
リポジトリの CI を設定する
ナビゲーションバーの CI/CD を開きます。このバージョンで設定できるのは継続的インテグレーションです。アプリケーションのデプロイは行いません。
以下の操作名は英語版の画面表示に合わせています。
始める前に
有料プランとコミットのあるリポジトリ
有料プランのアカウントで Account からサインインします。有料の Team、Business、Enterprise チームのメンバー枠も対象ですが、トライアルは対象外です。設定には 0.4.22 の CI テンプレートを提供する Termiyo サーバーに接続できる必要があります。CI を設定する前に、リポジトリへ最初のコミットをプッシュしてください。
11 種類のプロジェクト
Build it as では Node.js、Python、Go、Rust、Java (Maven)、Java (Gradle)、Ruby、PHP、.NET、Docker image、A blank starting point を選べます。GitHub と GitLab ではリポジトリ直下のファイル名から種類を検出します。選択を確認し、複数該当する場合は 1 つ選んでください。空の開始用テンプレートには、置き換えが必要な仮のステップが入っています。
GitHub
1.トークンを準備する
GitHub を選び、Open GitHub’s token page を押します。対象リポジトリに限定した細粒度の個人アクセストークンを使い、Contents、Workflows、Pull requests を Read and write、Actions、Metadata を Read にします。有効期限は 90 日以内にしてください。対応するのは api.github.com を使う github.com のみで、GitHub Enterprise には対応していません。
2.保存して確認する
Saved token から選ぶか、Save a new token を押し、Name と Paste the token を入力して Save to key box を押します。Repository に owner/name または github.com のリンクを入力し、Check を押します。List repositories this token can see も利用できます。
3.内容を確認してプルリクエストを作成する
Build it as を選び、Show the file でファイルを確認してから Set up CI を押します。Termiyo は termiyo/ci-setup に .github/workflows/termiyo-ci.yml をコミットし、プルリクエストを作成します。Open in browser で内容を確認してマージしてください。CI はプルリクエストでも実行される場合がありますが、誰かがマージするまで既定のブランチは変わりません。
GitLab
1.プロジェクトを指定してトークンを準備する
GitLab を選びます。Project に gitlab.com の場合は group/project、ご自身の GitLab の場合はプロジェクトの完全な HTTPS URL を入力し、Open GitLab’s token page を押します。api スコープの個人またはプロジェクトアクセストークンを使います。このスコープでは所有者と同じ操作ができるため、有効期限を短くして設定後に失効させてください。
2.プロジェクトとランナーを確認する
Saved token から選ぶか、Save a new token → Save to key box で保存し、Check を押します。Build it as を選びます。利用できるランナーがなければ、マージ前に共有ランナーを有効にするか、プロジェクトのランナーを登録してください。トークンの権限ではランナーの有無を確認できない場合も、パネルに表示されます。
3.内容を確認してマージリクエストを作成する
Show the file を押して内容を確認し、Set up CI を押します。Termiyo は termiyo/ci-setup に .gitlab-ci.yml をコミットし、マージリクエストを作成します。Open in browser で内容を確認してマージしてください。マージするまで既定のブランチは変わりません。
Giti:Repos on a host
1.ホストを確認する
Giti リポジトリのある SSH ホストに接続し、Repos on a host を選びます。このランナーには x86_64 または ARM64 の Linux、git、SSH アカウントから使える Docker が必要です。さらに curl または wget、tar、sha256sum または shasum、timeout が必要です。Termiyo は Docker をインストールしないため、ホスト管理者に依頼するか、rootless Docker を使ってください。
2.インストールして有効にする
Install the CI runner を押します。Termiyo は nektos/act 0.2.89 を ~/.termiyo/bin にダウンロードし、展開や実行の前に SHA-256 を検証します。リポジトリの Build it as を選び、Turn CI on を押します。他のツールの post-receive フックがある場合は変更せず、自動設定を行いません。
3.マージしてプッシュし、結果を読む
Termiyo がワークフローのブランチ termiyo/ci を作成した場合は、Copy で表示されたコマンドをコピーし、クローンした作業コピーの既定のブランチで実行してマージとプッシュを行います。その後、所有者のプッシュに応じてホストが .github/workflows/termiyo-ci.yml を Docker 内の act で実行します。アクセスを許可されたメンバーのプッシュでは CI は始まりません。Refresh と Log で結果を読み、Turn CI off でフックを無効にできます。
ホストのリソース
各実行のタイムアウトは 30 分です。Termiyo は Docker に対し、bridge ネットワーク、ジョブ内への Docker ソケット非公開、新たな権限の禁止、CPU 2 個、メモリ 4 GB、プロセス 512 個の上限を指定します。実際の制限はホストの Docker に依存します。初回は 2.3 GB のイメージをダウンロードします。
制限と検証
既存のワークフローとプラン
GitHub と GitLab では、Termiyo は対象のワークフローファイルを上書きしません。.gitlab-ci.yml がすでにある場合は、手動で統合するためのテンプレートを表示します。有料プランが必要なのは Termiyo からの設定です。実行結果の閲覧にプランの制限はなく、設定済みの CI はプランが終了しても動き続けます。テンプレートは Termiyo サーバーから取得し、アプリ内に固定されたフィンガープリントとの一致が必要です。
これまでの検証
GitHub と GitLab の設定は模擬サービスでテストされており、実際のアカウントでは検証されていません。Giti CI は 1 台の x86_64 ホストで実際の実行を 1 回完了しています。このバージョンではデプロイは実装されていません。