UMA pipeline de construçãogeralmente requer acesso a recursos de terceiros, além do código-fonte dos artefatos que ele pretende criar. Cada um desses recursos de terceiros introduz um fator de risco nas compilações, por exemplo:
Os repositórios de distribuição estão temporariamente indisponíveis, portanto, a instalação dos pacotes de distribuição falha temporariamente.
Os repositórios de distribuição estão permanentemente indisponíveis, iguais e piores que antes.
Alguns pacotes de software livre do NPM param de existir, porque seu autor reivindicou essa retirada.
Algum arquivo de origem ou pacote ad-hoc binário para uma ferramenta de terceiros não está mais disponível.
Essa lista pode ser estendida ad lib e, embora o estudo das várias razões que levem a que alguns recursos de terceiros desapareçam seja muito mais divertido, parece que em primeiro lugar tem uma conseqüência desastrosa para nós: o pipeline de construção está quebrado.
Qual é a melhor maneira de abordar os dois casos a seguir ao criar imagens de janela de encaixe :
- Armazenando em cache arquivos baixados com um curl ou wget .
- Armazenando em cache pacotes Debian.
Existem várias estratégias plausíveis que podem ser consideradas aqui. Por exemplo, usando um proxy e configurando o sistema de construção para rotear todas as suas solicitações por meio desse proxy. Uma segunda possibilidade barata seria agrupar chamadas curl para armazenar resultados em um cache local.
(Nesta pergunta, eu consideraria compartilhar o cache entre várias unidades do pipeline de construção como uma questão de importância secundária.)