82f0ac6007
Deploy to Production / deploy (push) Failing after 10s
- .gitea/workflows/deploy.yml — push-to-main triggers rolling deploy - scripts/deploy-bluegreen.sh — a-stack then b-stack restart; Maven runs in Docker (no JDK needed on runner host); Caddy reload at end - scripts/deploy-all.ps1 — emergency manual deploy from dev machine - infra/docker-compose.yml — a/b pairs per service; wget health checks; Gitea service; Prometheus/Grafana/DB ports restricted to localhost - infra/Caddyfile — dual upstreams with health-based routing - infra/Dockerfile.* — one per service - infra/prometheus.yml + grafana provisioning Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
216 lines
7.9 KiB
XML
216 lines
7.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
|
https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.botstandards</groupId>
|
|
<artifactId>apix-parent</artifactId>
|
|
<version>${revision}</version>
|
|
</parent>
|
|
|
|
<artifactId>apix-registry</artifactId>
|
|
<name>APIX :: Registry</name>
|
|
<description>REST API service. Owns the database schema (Liquibase). Port 8180.</description>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.botstandards</groupId>
|
|
<artifactId>apix-common</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.botstandards</groupId>
|
|
<artifactId>apix-verification</artifactId>
|
|
</dependency>
|
|
|
|
<!-- REST -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-rest</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-rest-jackson</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Persistence -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-hibernate-orm-panache</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-jdbc-postgresql</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-liquibase</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Logging -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-logging-json</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Observability -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-micrometer-registry-prometheus</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Validation / Security / Health -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-hibernate-validator</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-security</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-smallrye-health</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Test -->
|
|
<dependency>
|
|
<groupId>io.quarkus</groupId>
|
|
<artifactId>quarkus-junit5</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.rest-assured</groupId>
|
|
<artifactId>rest-assured</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.wiremock</groupId>
|
|
<artifactId>wiremock</artifactId>
|
|
<version>3.5.4</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- AssertJ — explicit because Quarkus BOM does not export it as a transitive -->
|
|
<dependency>
|
|
<groupId>org.assertj</groupId>
|
|
<artifactId>assertj-core</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Cucumber BDD -->
|
|
<dependency>
|
|
<groupId>io.cucumber</groupId>
|
|
<artifactId>cucumber-java</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.cucumber</groupId>
|
|
<artifactId>cucumber-junit-platform-engine</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.platform</groupId>
|
|
<artifactId>junit-platform-suite</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Allure reporting -->
|
|
<dependency>
|
|
<groupId>io.qameta.allure</groupId>
|
|
<artifactId>allure-cucumber7-jvm</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<!-- Adds src/integration-test as test source/resource root -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>add-integration-test-source</id>
|
|
<phase>generate-test-sources</phase>
|
|
<goals><goal>add-test-source</goal></goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>src/integration-test/java</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>add-integration-test-resource</id>
|
|
<phase>generate-test-resources</phase>
|
|
<goals><goal>add-test-resource</goal></goals>
|
|
<configuration>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/integration-test/resources</directory>
|
|
</resource>
|
|
</resources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- Unit tests only — exclude IT classes so they don't run in the test phase -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>**/*IT.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- Integration tests run in integration-test/verify phases -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/*IT.java</include>
|
|
</includes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>${quarkus.platform.group-id}</groupId>
|
|
<artifactId>quarkus-maven-plugin</artifactId>
|
|
<extensions>true</extensions>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>build</goal>
|
|
<goal>generate-code</goal>
|
|
<goal>generate-code-tests</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- Used by setup-dev.sh: mvn liquibase:update -pl apix-registry -Dliquibase.url=... -->
|
|
<plugin>
|
|
<groupId>org.liquibase</groupId>
|
|
<artifactId>liquibase-maven-plugin</artifactId>
|
|
<configuration>
|
|
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
|
|
</configuration>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>42.7.3</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|