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 .