Automatizando compilações de imagens Pharo

Se você estiver planejando fazer um aplicativo de back-end usando imagens de trabalho Pharo, provavelmente configurará um Jenkins ou algum tipo de servidor de CI .

Dois minutos depois disso, o servidor CI precisará ter um comando de terminal para:

  1. Inicie a construção da imagem.
  2. Carregue todos os requisitos e pacotes de aplicativos.
  3. Salve a imagem e saia.

Portanto, a primeira coisa que você pode fazer é criar algum código para fileIn. Depois de todo o carregamento do pacote, você pode colocar algum método lá para salvar a imagem e sair.

Isso iniciará a compilação e carregará tudo, mas você não poderá abrir a imagem novamente. Quando você tenta abrir essa imagem recém-construída, ela se fecha em uma fração de segundo. Você não verá nenhum despejo de memória ou logs de erro, nada de anômalo. Isso porque não é uma falha ou um erro. É simplesmente uma imagem normal encerrada.

Depois de examinar o problema por um tempo e testar diferentes combinações, descobri o comando que permite fazer as três coisas: construir , carregar e salvar corretamente.

/pharo -vm-display-null airflowing.image AirflowingWorkerBuilder.st --quit

Como funciona?

Funciona assim: carrega requisitos e pacotes do AirflowingWorkerBuilder.stcódigo filedIn , depois que todos os pacotes são carregados, a imagem é salva com um Smalltalk imageSavee finalmente sai.

Tenha em atenção que o encerramento da imagem não deve ser efectuado pelo script filedIn. Outra coisa que você não deve fazer é tentar um do seu script filedIn, caso contrário, ele criará uma imagem que você não poderá mais abrir.Smalltalk saveImage: anImageName andQuit: true

Conclusão

Use a linha de comando para automatizar o encerramento da imagem em vez de codificá-lo. Se você usar a partir da linha de comando, o estado da imagem ao salvar permanecerá conforme o esperado quando a imagem fechar.--quit--quit