Tabla de contenido


Características

Escribir registros de actividad y tareas en un archivo (PRO)

Semaphore Pro ahora admite escribir los registros de actividad y tareas en un archivo. Para habilitar esto, agrega la siguiente configuración a tu config.json:

{
  "log": {
    "events": {
      "enabled": true,
      "logger": {
        "filename": "./events.log"
      }
    },
    "task": {
      "enabled": true,
      "logger": {
        "filename": "./tasks.log"
      }
    }
  }
}

O puedes hacer esto utilizando las siguientes variables de entorno:

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

Cada línea en el archivo sigue este formato:

2024-01-03 12:00:34 user=234234 object=template action=delete ...

El registro de archivos también admite rotación. Más detalles están disponibles en la documentación.

Página de tokens de API

Ver registros de tareas en bruto

Ahora puedes abrir el registro en bruto de una tarea haciendo clic en el botón REGISTRO EN BRUTO en la esquina inferior derecha de la ventana de registro de tareas.

Limpiar caché de proyectos y ejecutores

Semaphore ahora te da más control sobre la gestión de caché.

Anteriormente, la caché no utilizada se limpiaba automáticamente cuando eliminabas plantillas o proyectos. Sin embargo, en algunos casos, la caché sobrante podría permanecer y almacenarse indefinidamente.

Con la nueva función de Limpiar Caché, puedes limpiar manualmente:

Esto ayuda a liberar espacio en disco, mejorar el rendimiento y mantener tu entorno ordenado.

Sobrescribir rama en plantillas y tareas

Ahora puedes sobrescribir la rama predeterminada del repositorio fuente en la configuración de la plantilla.

Alternativamente, habilita la opción Solicitar rama en la ejecución para elegir la rama cada vez que ejecutes una tarea.

Nueva variable de entorno para la configuración del proveedor OIDC

Hemos introducido una nueva variable de entorno: SEMAPHORE_OIDC_PROVIDERS para configurar proveedores de OpenID Connect (OIDC).

Esto es especialmente útil al ejecutar Semaphore dentro de un contenedor Docker.

La variable debe contener JSON válido en el siguiente formato:

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // campos adicionales...
  }
}'

Nueva estructura de directorio temporal

Hemos mejorado la estructura del directorio temporal introduciendo directorios por proyecto. Ahora, cada proyecto tiene su propia carpeta dedicada bajo el directorio tmp_path.

Este cambio facilita la gestión y limpieza de la caché cuando se elimina un proyecto.

Además, el directorio de inventario para plantillas ahora sigue un formato de nomenclatura claro, como: tmp_path/project_0/repository_1_template_2_inventory_3 Esta estructura ayuda a evitar clonar el repositorio de inventario en cada ejecución de tarea, mejorando el rendimiento y reduciendo la redundancia.

Capacidad de agregar usuarios externos (LDAP y OIDC) manualmente

Ahora puedes agregar usuarios LDAP y OIDC a Semaphore antes de que inicien sesión por primera vez.

Esto te permite configurar sus permisos y asignarlos a proyectos por adelantado.

Necesitas derechos de administrador para agregar un usuario a través de la interfaz web (casilla de verificación Externo), o puedes usar la CLI con la bandera --external:

semaphore user add \
  --external \
  --login john \
  --name John \
  --email [email protected] \
  --password=changeme

Valores predeterminados para variables de encuesta

Ahora puedes establecer valores predeterminados para las variables de encuesta, facilitando el llenado de entradas comunes durante la ejecución de tareas.

Soporte TLS para conexiones de servidor SMTP

Semaphore ahora admite conexiones seguras TLS al enviar correos electrónicos a través de un servidor SMTP. Ejemplo de configuración:

{
  "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" // opcional (predeterminado 1.2)
}

Niveles de verbosidad configurables para playbooks de Ansible

Ahora puedes seleccionar el nivel de verbosidad deseado al ejecutar tareas de playbook de Ansible, ayudando con la depuración y solución de problemas.

Chroot soporte y ejecución de tareas como un usuario diferente

Semaphore ahora puede ejecutar tareas dentro de un entorno chroot y bajo un usuario especificado, mejorando la seguridad y el aislamiento. Ejemplo de configuración:

{
  "process": {
    "chroot": "/opt/semaphore/chroot",
    "user": "semrun"
  }
}

Ejemplo de variables de entorno:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Soporte de autenticación de webhook de Bitbucket

Las integraciones ahora se pueden configurar utilizando la autenticación de webhook de Bitbucket.

Configuraciones de zona horaria de horarios

Semaphore ya no utiliza la zona horaria del sistema. En su lugar, ahora puedes establecer explícitamente una zona horaria para los horarios utilizando la siguiente opción de configuración:

{
  "schedule": {
    "timezone": "Asia/Calcutta"
  }
}

O utilizando la siguiente variable de entorno:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Correcciones de errores