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!