Tabela de conteúdos


Recursos

Gravar logs de atividade e tarefas em um arquivo (PRO)

O Semaphore Pro agora suporta a gravação dos logs de atividade e tarefas em um arquivo. Para habilitar isso, adicione a seguinte configuração ao seu config.json:

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

Ou você pode fazer isso usando as seguintes variáveis de ambiente:

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 linha no arquivo segue este formato:

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

A gravação de arquivos também suporta rotação. Mais detalhes estão disponíveis na documentação.

Página de tokens da API

Visualizar logs de tarefas brutos

Agora você pode abrir o log bruto de uma tarefa clicando no botão RAW LOG no canto inferior direito da janela de log da tarefa.

Limpar cache de projeto e runner

O Semaphore agora oferece mais controle sobre a gestão de cache.

Anteriormente, o cache não utilizado era automaticamente limpo quando você removia templates ou projetos. No entanto, em alguns casos, o cache restante poderia permanecer e ser armazenado indefinidamente.

Com o novo recurso Limpar Cache, você pode limpar manualmente:

Isso ajuda a liberar espaço em disco, melhorar o desempenho e manter seu ambiente organizado.

Substituir branch em templates e tarefas

Agora você pode substituir a branch padrão do repositório de origem nas configurações do template.

Alternativamente, habilite a opção Prompt for branch on execution para escolher a branch cada vez que você executar uma tarefa.

Nova variável de ambiente para configuração do provedor OIDC

Introduzimos uma nova variável de ambiente: SEMAPHORE_OIDC_PROVIDERS para configurar provedores OpenID Connect (OIDC).

Isso é especialmente útil ao executar o Semaphore dentro de um contêiner Docker.

A variável deve conter JSON válido no seguinte formato:

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

Nova estrutura de diretório temporário

Melhoramos a estrutura do diretório temporário introduzindo diretórios por projeto. Agora, cada projeto tem sua própria pasta dedicada sob o diretório tmp_path.

Essa mudança facilita a gestão e limpeza do cache quando um projeto é removido.

Além disso, o diretório de inventário para templates agora segue um formato de nomenclatura claro, como: tmp_path/project_0/repository_1_template_2_inventory_3 Essa estrutura ajuda a evitar a clonagem do repositório de inventário em cada execução de tarefa, melhorando o desempenho e reduzindo a redundância.

Capacidade de adicionar usuários externos (LDAP e OIDC) manualmente

Agora você pode adicionar usuários LDAP e OIDC ao Semaphore antes que eles façam login pela primeira vez.

Isso permite que você configure suas permissões e os atribua a projetos com antecedência.

Você precisa de direitos de administrador para adicionar um usuário através da interface da web (caixa de seleção External), ou pode usar a CLI com a flag --external:

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

Valores padrão para variáveis de pesquisa

Agora você pode definir valores padrão para variáveis de pesquisa, facilitando o preenchimento de entradas comuns durante a execução de tarefas.

Suporte a TLS para conexões de servidor SMTP

O Semaphore agora suporta conexões seguras TLS ao enviar e-mails através de um servidor SMTP. Exemplo de configuração:

{
  "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 (padrão 1.2)
}

Níveis de verbosidade configuráveis para playbooks do Ansible

Agora você pode selecionar o nível de verbosidade desejado ao executar tarefas de playbook do Ansible, ajudando na depuração e solução de problemas.

Chroot suporte e execução de tarefas como usuário diferente

O Semaphore agora pode executar tarefas dentro de um ambiente chroot e sob um usuário especificado, melhorando a segurança e o isolamento. Exemplo de configuração:

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

Exemplo de variáveis de ambiente:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Suporte à autenticação de Webhook do Bitbucket

As integrações agora podem ser configuradas usando autenticação de webhook do Bitbucket.

Configurações de fuso horário de agendamentos

O Semaphore não usa mais o fuso horário do sistema. Em vez disso, agora você pode definir explicitamente um fuso horário para os agendamentos usando a seguinte opção de configuração:

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

Ou usando a seguinte variável de ambiente:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Correções de bugs