目次
-
機能
-
アクティビティとタスクログをファイルに書き込む (PRO)
すべてのアクティビティログをファイルに直接保存することで、永続的な記録を保持します。PROバージョンで利用可能です。
詳細はこちら » -
APIトークンページ
もはやcURLを使用してAPIトークンを作成する必要はありません。
詳細はこちら » -
生のタスクログを表示
すべてのタスクの未処理の生ログ出力にアクセスできるようになりました — デバッグに最適です。
詳細はこちら » -
プロジェクトとランナーのキャッシュをクリア
プロジェクトとランナーのキャッシュを手動でクリアすることで、スペースを解放し、クリーンな状態から始めることができます。
詳細はこちら » -
テンプレートとタスクでのブランチのオーバーライド
テンプレート全体を編集することなく、タスクやテンプレートごとにブランチを柔軟に切り替えることができます。
詳細はこちら » -
OIDCプロバイダー設定用の新しい環境変数
OIDCプロバイダーのセットアップと統合を簡素化するために、新しい環境変数が追加されました。
詳細はこちら » -
新しい一時ディレクトリ構造
一時ディレクトリの構造を改善し、より良い分離を提供し、理解しやすくしました。
詳細はこちら » -
外部 (LDAPおよびOIDC) ユーザーを手動で追加する機能
ユーザーが初めてログインする前に、SemaphoreにLDAPおよびOIDCユーザーを追加できるようになりました。
詳細はこちら » -
サーベイ変数のデフォルト値
サーベイ変数のデフォルト値を設定できるようになり、タスク実行中に一般的な入力を事前に入力しやすくなりました。
詳細はこちら » -
SMTPサーバー接続のTLSサポート
Semaphoreは、SMTPサーバーを介してメールを送信する際に安全なTLS接続をサポートするようになりました。
詳細はこちら » -
Ansibleプレイブックの冗長性レベルの設定
Ansibleプレイブックタスクを実行する際に、希望する冗長性レベルを選択できるようになり、デバッグやトラブルシューティングに役立ちます。
詳細はこちら » -
Chrootサポートと異なるユーザーとしてのタスク実行
Semaphoreは、chroot環境内でタスクを実行し、指定されたユーザーの下で実行できるようになり、セキュリティと分離が向上しました。
詳細はこちら » -
Bitbucket Webhook認証サポート
統合は、Bitbucket webhook認証を使用して構成できるようになりました。
詳細はこちら » -
スケジュールのタイムゾーン設定
Semaphoreはもはやシステムのタイムゾーンを使用しません。代わりに、スケジュールのために明示的にタイムゾーンを設定できるようになりました。
詳細はこちら »
-
機能
アクティビティとタスクログをファイルに書き込む (PRO)
Semaphore Proは、アクティビティとタスクログをファイルに書き込むことをサポートしています。これを有効にするには、config.json
に次の設定を追加します:
{
"log": {
"events": {
"enabled": true,
"logger": {
"filename": "./events.log"
}
},
"task": {
"enabled": true,
"logger": {
"filename": "./tasks.log"
}
}
}
}
または、次の環境変数を使用してこれを行うことができます:
export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOG_PATH=./tasks.log
export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOG_PATH=./tasks.log
ファイル内の各行は次の形式に従います:
2024-01-03 12:00:34 user=234234 object=template action=delete ...
ファイルロギングはローテーションもサポートしています。 詳細はドキュメントで確認できます。
APIトークンページ

生のタスクログを表示
タスクログウィンドウの右下隅にある生ログボタンをクリックすることで、タスクの生ログを開くことができるようになりました。

プロジェクトとランナーのキャッシュをクリア
Semaphoreは、キャッシュ管理に対するより多くの制御を提供します。
以前は、未使用のキャッシュはテンプレートやプロジェクトを削除したときに自動的にクリアされていました。しかし、場合によっては、残りのキャッシュが残り、無期限に保存されることがありました。
新しいキャッシュクリア機能を使用すると、手動でクリーンアップできます:
- 特定のプロジェクトのキャッシュ
- プロジェクトランナーのキャッシュ
- ランナーのすべてのキャッシュ
- または、Semaphoreサーバー全体のキャッシュ
これにより、ディスクスペースを解放し、パフォーマンスを向上させ、環境を整頓できます。

テンプレートとタスクでのブランチのオーバーライド
テンプレート設定でソースリポジトリのデフォルトブランチをオーバーライドできるようになりました。
または、実行時にブランチを選択するオプションを有効にして、タスクを実行するたびにブランチを選択できます。

OIDCプロバイダー設定用の新しい環境変数
OpenID Connect (OIDC) プロバイダーを設定するための新しい環境変数 SEMAPHORE_OIDC_PROVIDERS
が導入されました。
これは、SemaphoreをDockerコンテナ内で実行する際に特に便利です。
変数には、次の形式の有効なJSONを含める必要があります:
SEMAPHORE_OIDC_PROVIDERS='{
"github": {
"client_id": "***",
"client_secret": "***"
// 追加のフィールド...
}
}'
新しい一時ディレクトリ構造
プロジェクトごとのディレクトリを導入することで、一時ディレクトリ構造を改善しました。これにより、各プロジェクトはtmp_path
ディレクトリの下に専用のフォルダーを持つようになります。
この変更により、プロジェクトが削除されたときにキャッシュを管理しやすくなります。
さらに、テンプレートのインベントリディレクトリは、次のような明確な命名形式に従います:
tmp_path/project_0/repository_1_template_2_inventory_3
この構造により、タスク実行ごとにインベントリリポジトリをクローンする必要がなくなり、パフォーマンスが向上し、冗長性が減少します。
外部 (LDAPおよびOIDC) ユーザーを手動で追加する機能
ユーザーが初めてログインする前に、SemaphoreにLDAPおよびOIDCユーザーを追加できるようになりました。
これにより、事前に権限を設定し、プロジェクトに割り当てることができます。
Webインターフェースを通じてユーザーを追加するには管理者権限が必要です(外部チェックボックス)、またはCLIを使用して--external
フラグを使用することもできます:
semaphore user add \
--external \
--login john \
--name John \
--email [email protected] \
--password=changeme
サーベイ変数のデフォルト値
サーベイ変数のデフォルト値を設定できるようになり、タスク実行中に一般的な入力を事前に入力しやすくなりました。

SMTPサーバー接続のTLSサポート
Semaphoreは、SMTPサーバーを介してメールを送信する際に安全なTLS接続をサポートするようになりました。設定例:
{
"email_alert": true,
"email_sender": "[email protected]",
"email_host": "smtp.example.com",
"email_username": "user123",
"email_password": "changeme",
"email_tls": true,
"email_port": "587",
"email_tls_min_version": "1.1" // オプション (デフォルト1.2)
}
Ansibleプレイブックの冗長性レベルの設定
Ansibleプレイブックタスクを実行する際に、希望する冗長性レベルを選択できるようになり、デバッグやトラブルシューティングに役立ちます。

Chrootサポートと異なるユーザーとしてのタスク実行
Semaphoreは、chroot環境内でタスクを実行し、指定されたユーザーの下で実行できるようになり、セキュリティと分離が向上しました。設定例:
{
"process": {
"chroot": "/opt/semaphore/chroot",
"user": "semrun"
}
}
環境変数の例:
SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun
Bitbucket Webhook認証サポート
統合は、Bitbucket webhook認証を使用して構成できるようになりました。

スケジュールのタイムゾーン設定
Semaphoreはもはやシステムのタイムゾーンを使用しません。代わりに、次の設定オプションを使用してスケジュールのために明示的にタイムゾーンを設定できるようになりました:
{
"schedule": {
"timezone": "Asia/Calcutta"
}
}
または、次の環境変数を使用して設定できます:
SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta
バグ修正
- アプリケーション全体でUTCタイムゾーンを一貫して使用します。
- タスク実行ごとにインベントリリポジトリをクローンしないようにします。
- Terraformタスクのチェックボックスが正しく機能するようになりました。
- スケジュールの曜日チェックボックスが正しく機能するようになりました。
- テンプレートの説明を設定する機能が復元されました。