Files
backend/.gitea/workflows/test.yaml
T
TakahashiNg 9ffe0a8c88
Java CI with Maven / build-and-test (pull_request) Failing after 6m21s
chore: update
2026-04-16 09:22:18 +00:00

87 lines
2.8 KiB
YAML

name: Java CI with Maven
on:
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
actions: read
checks: write
jobs:
build-and-test:
runs-on: ubuntu-latest
env:
DOCKER_NET: "quarkus-it-net"
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Install dependencies with Proxy
env:
http_proxy: "http://host.docker.internal:3142"
https_proxy: "http://host.docker.internal:3142"
run: |
# Kiểm tra proxy có hoạt động không
echo "Acquire::http::Proxy \"$http_proxy\";" > /etc/apt/apt.conf.d/80proxy
apt-get update
apt-get install -y --no-install-recommends --no-install-suggests \
openjdk-25-jdk-headless docker-cli docker-buildx
- name: Build and Test all modules
env:
TESTCONTAINERS_RYUK_DISABLED: "true"
run: |
docker network create ${DOCKER_NET} || true
docker run -d --name postgres-it --network-alias postgres-it --network ${DOCKER_NET} -e POSTGRES_PASSWORD=password postgres || true
docker run -d --name redis-it --network ${DOCKER_NET} redis || true
POSTGRES_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' postgres-it)
REDIS_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-it)
echo "PostgreSQL IP: ${POSTGRES_IP}"
echo "Redis IP: ${REDIS_IP}"
./scripts/gen-it.sh
./mvnw -B verify \
-Dquarkus.container-image.push=false \
-Dquarkus.test.container.network=${DOCKER_NET} \
-Dquarkus.test.env.QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://postgres-it:5432/postgres \
-Dquarkus.redis.hosts=redis://${REDIS_IP}:6379
- name: Debug Quarkus Integration Test Logs
if: failure()
run: |
echo "--- QUARKUS LOG ---"
# Tìm và hiển thị log của Quarkus Integration Test
find . -name "quarkus.log" -exec cat {} +
echo "--- DOCKER CONTAINERS STATUS ---"
docker ps -a
echo "--- DOCKER NETWORK INSPECT ---"
docker network inspect ${DOCKER_NET} || true
- name: Clean up Docker containers
if: always()
run: |
docker ps -a --filter network=${DOCKER_NET} -q | xargs -r docker rm -f
docker network rm ${DOCKER_NET}