Coletamos em rpm o WireMock - um utilitário para criar stubs sobre serviços da web no Fedora COPR análogo do PPA no Ubuntu

O WireMock é um utilitário de biblioteca java para criar stubs em serviços da web. Ele cria um servidor HTTP, ao qual poderíamos nos conectar como um serviço da Web real.


O Fedora COPR é um serviço de hospedagem gratuito para hospedar repositórios personalizados (semelhante ao AUR no Arch Linux ou PPA no Ubuntu). Dos recursos, a capacidade integrada de coletar pacotes rpm especificando o nome do PIP e do RubyGems.


Neste post vou escrever como coletar rpm do seu repositório, comprometendo-se com o Fedora COPR .


Por exemplo, considere o repositório wiremock-rpm no qual criei os arquivos de especificação e unidade de sistema. Ao criar seu repositório, você pode tomar o wiremock-rpm como base e alterar o que precisa. Eu omito a gravação de arquivos de especificação e de unidade systemd. Eu acho que você sabe.


Criando um projeto no Fedora COPR


Vá para o COPR do Fedora .



Nome do projeto : especifique o nome do pacote. Geralmente o mesmo que o nome do seu repositório git.


Descrição : Uma breve descrição do projeto.


Instruções : Como instalar o seu pacote. Indique o seguinte:


yum -y install yum-plugin-copr yum copr enable ---fedora-copr/- yum -y install - systemctl start - 

Página inicial : especifique a página inicial do programa que você deseja construir ou seu repositório.



Opções de compilação : no Chroots, indicamos em qual sistema operacional você deseja coletar o pacote.



Acontece como na imagem.



Outras opções : se você precisar de Internet, nos Booleanos, marque a caixa Ativar acesso à Internet durante as compilações



Após criar o projeto, acesse Pacotes .



Nome do pacote: especifique o nome do pacote.


URL de clone: especifique o repositório git.


Subdiretório: Esse item é melhor para não usar e manter o arquivo de origem e especificação na raiz do projeto. Se você tiver as fontes em um diretório e o arquivo spec em outro diretório, pode haver problemas com a compilação.


Arquivo de especificação: caminho para o arquivo de especificação.



Configuração genérica do pacote : verifique a reconstrução automática



Depois de criar o pacote, vá para Configurações e depois para Integrações. Abaixo na página, copiamos o webhook do sistema em que seu repositório git está localizado.



Vá para Configurações onde seu repositório git está localizado. Avançar para o github, vá para o webhook. Adicione webhook. Inserir URL de Carga Útil, selecione Tipo de Conteúdo application / json


Agora sobre o WireMock.


Instale o wiremock de acordo com as instruções. O diretório de trabalho do wiremock no meu projeto é /usr/lib/wiremock /. Este diretório contém wiremock.jar e o diretório de mapeamentos. No diretório de mapeamentos, há arquivos json com solicitações enviadas ao wiremock e respostas preparadas.


Exemplo de http://wiremock.org/docs/running-standalone/ :


 { "request": { "method": "GET", "url": "/api/mytest" }, "response": { "status": 200, "body": "More content\n" } } 

Enviamos uma solicitação para / api / mytest e obtemos:


 curl http://localhost:8080/api/mytest More content 

Um exemplo do meu json preparado:


 { "request": { "method": "GET", "url": "/503" }, "response": { "status": 503, "body": "503 Service Unavailable\n" } } 

Vamos fazer uma solicitação para / 503


 curl -i -v 172.26.9.123:8080/503 * About to connect() to 172.26.9.123 port 8080 (#0) * Trying 172.26.9.123... * Connected to 172.26.9.123 (172.26.9.123) port 8080 (#0) > GET /503 HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 172.26.9.123:8080 > Accept: */* > < HTTP/1.1 503 Service Unavailable HTTP/1.1 503 Service Unavailable < Matched-Stub-Id: d8b419e1-7e33-4f04-889e-2428f849dc7d Matched-Stub-Id: d8b419e1-7e33-4f04-889e-2428f849dc7d < Transfer-Encoding: chunked Transfer-Encoding: chunked < Server: Jetty(9.2.z-SNAPSHOT) Server: Jetty(9.2.z-SNAPSHOT) < 503 Service Unavailable 

Em rpm, a wiremock adicionou códigos http populares. Fontes aqui .

Source: https://habr.com/ru/post/pt476260/


All Articles