Lançar uma compilação por programação

Tradução automática de Deepl

Em sistemas de integração contínua, cada vez que o código é submetido, ou numa base horária, é automaticamente lançada uma compilação do código fonte. Esta abordagem permite verificar as fusões no servidor de gestão de código.

A partir do 4D v19, um novo comando permite-lhe lançar a compilação do código, para que possa configurar este tipo de sistema.

Lançar uma compilação por programação

O que é a integração contínua?

A integração contínua consiste em verificar, cada vez que o código fonte é modificado, que o resultado das modificações não produz regressões na aplicação desenvolvida. O principal objectivo é detectar problemas de integração o mais cedo possível durante o desenvolvimento.

Novo comando

O novo comando Compile Project permite a sua compilação:

  • o projecto actual
  • um projecto diferente do projecto actual

Se a compilação for bem sucedida, o comando devolve um objecto de estatuto com uma propriedade de sucesso. Caso contrário, devolve um objecto de estado com uma lista de erros.

Compilar O PROJECTO ACTUAL

A compilação do projecto actual com as configurações padrão é muito simples:

var $status : Object
$status :=Compile project(
)

Também pode anular as opções de compilação passando um objecto com os novos valores. Aqui estão as opções que podem ser sobrepostas:

  • alvo de compilação
  • tipo inferência
  • tipo padrão para numéricos ou botões
  • gerar símbolos
  • gerar métodos de dactilografia
  • componentes a utilizar na compilação

Por exemplo, cada vez que o código é submetido no servidor de controlo da fonte, pode lançar uma simples verificação de sintaxe para verificar o código fundido.

var $options; $status: Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)

Se a sua aplicação utiliza componentes, terá de passar a lista de componentes compilados no objecto de opções.

var $options; $status: Object
var $component : 4D.File
$options :=New object()
$options .components:=Folder("/PACKAGE/Componentes").files(fk recursive).query("extensão = .4dz")
$status :=Compile project($options)

Compilar outro projecto

É possível compilar uma candidatura de outro projecto. Basta passar o ficheiro do projecto para o comando:

var $file: 4D.File
$file :=Folder(fk documents folder).file("Bases de dados/minha aplicação/Projecto/minha aplicação.4DProject")
$status :=Compile project($file)

Gestão de erros de compilação

O comando devolve um objecto de estado que lhe diz se a compilação é bem sucedida ou não. Se a compilação falhar, 4D devolve a recolha de mensagens de erro, os métodos implicados, e o número de linha do erro.

Depois, graças ao novo parâmetro do METHOD OPEN PATH pode abrir o método no editor de códigos e colocar o cursor sobre a linha de erro.

Por exemplo, é possível exibir a colecção de erros numa caixa da lista e depois adicionar um botão que abre o método do erro seleccionado na lista:

METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)

Fique atento! Temos mais posts no blogue sobre integração contínua a chegar!

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.