目录


功能

将活动和任务日志写入文件 (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现在为您提供了更多的缓存管理控制。

以前,当您删除模板或项目时,未使用的缓存会自动清除。然而,在某些情况下,剩余的缓存可能会保留并无限期存储。

通过新的清除缓存功能,您可以手动清理:

这有助于释放磁盘空间,提高性能,并保持环境整洁。

在模板和任务中覆盖分支

您现在可以在模板设置中覆盖源代码库的默认分支。

或者,启用选项执行时提示选择分支,以便每次运行任务时选择分支。

用于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

错误修复