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