Files
backend/.gitea/workflows/test.yaml
T
TakahashiNg 151d0a97c2
Java CI with Maven / build-and-test (pull_request) Has been cancelled
chore: update
2026-04-16 05:54:48 +00:00

88 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: |
./mvnw verify -Pnative \
-Dquarkus.container-image.build=true \
-Dquarkus.http.test-host=localhost \
-Dquarkus.test.arg-line="-DskipTests"
export QUARKUS_NET_ID=$(docker network ls --filter name=quarkus -q | head -n 1)
echo "Đã phát hiện mạng của Quarkus: ${QUARKUS_NET_ID}"
docker run -d --name postgres-it --network ${QUARKUS_NET_ID} -e POSTGRES_PASSWORD=password postgres
docker run -d --name redis-it --network ${QUARKUS_NET_ID} redis
RUNNER_IP=$(docker container inspect $(hostname) -f '{{ (index .NetworkSettings.Networks "'${QUARKUS_NET_ID}'").IPAddress }}')
./mvnw verify -Pnative \
-Dquarkus.http.test-host=${RUNNER_IP} \
-Dquarkus.test.container.network=${QUARKUS_NET_ID} \
-Dquarkus.test.env.QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://postgres-it:5432/postgres \
-Dquarkus.redis.hosts=redis://redis-it: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}