目录
-
功能
-
将活动和任务日志写入文件 (PRO)
通过直接将所有活动日志保存到文件中,保持持久记录。此功能在PRO版本中可用。
了解更多 » -
API令牌页面
现在您无需使用cURL来创建API令牌。
了解更多 » -
查看原始任务日志
现在您可以访问任何任务的未处理原始日志输出——非常适合调试。
了解更多 » -
清除项目和运行器缓存
通过手动清除项目和运行器的缓存来释放空间并重新开始。
了解更多 » -
在模板和任务中覆盖分支
灵活地切换分支,而无需编辑整个模板——只需在每个任务或模板中覆盖它。
了解更多 » -
用于OIDC提供程序配置的新环境变量
新增环境变量以简化OIDC提供程序的设置和集成。
了解更多 » -
新的临时目录结构
我们改进了临时目录的结构,以提供更好的隔离并使其更易于理解。
了解更多 » -
手动添加外部(LDAP和OIDC)用户的能力
现在您可以在用户首次登录之前将LDAP和OIDC用户添加到Semaphore中。
了解更多 » -
调查变量的默认值
现在您可以为调查变量设置默认值,使在任务运行期间更容易预填常见输入。
了解更多 » -
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提供程序配置的新环境变量
我们引入了一个新的环境变量:SEMAPHORE_OIDC_PROVIDERS
,用于配置OpenID Connect (OIDC)提供程序。
在Docker容器中运行Semaphore时,这尤其有用。
该变量必须包含有效的JSON,格式如下:
SEMAPHORE_OIDC_PROVIDERS='{
"github": {
"client_id": "***",
"client_secret": "***"
// 其他字段...
}
}'
新的临时目录结构
我们通过引入每个项目的目录改进了临时目录结构。现在,每个项目在tmp_path
目录下都有自己的专用文件夹。
此更改使得在删除项目时更容易管理和清理缓存。
此外,模板的清单目录现在遵循清晰的命名格式,例如:
tmp_path/project_0/repository_1_template_2_inventory_3
这种结构有助于避免在每次任务执行时克隆清单库,提高性能并减少冗余。
手动添加外部(LDAP和OIDC)用户的能力
您现在可以在用户首次登录之前将LDAP和OIDC用户添加到Semaphore中。
这使您能够提前配置他们的权限并将他们分配到项目中。
您需要具有管理员权限才能通过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任务复选框现在正常工作。
- 计划中的星期几复选框现在正常工作。
- 恢复为模板设置描述的能力。