name: CI - Build & Test (develop) on: pull_request: branches: - develop jobs: build-and-test: runs-on: self-hosted steps: # 1) S'assurer que Node.js est installé (utile pour les actions JS comme actions/checkout) - name: Ensure Node.js is installed shell: sh run: | if command -v node >/dev/null 2>&1; then echo "Node.js already installed: $(node -v)" else echo "Node.js not found, installing..." apk update && apk add --no-cache nodejs echo "Node.js installed: $(node -v)" fi # 2) S'assurer que Java + Maven sont installés - name: Ensure Java & Maven are installed shell: sh run: | if command -v java >/dev/null 2>&1; then echo "Java already installed:" java -version else echo "Java not found, installing OpenJDK 17..." apk update && apk add --no-cache openjdk17-jdk echo "Java installed:" java -version fi if command -v mvn >/dev/null 2>&1; then echo "Maven already installed:" mvn -version else echo "Maven not found, installing Maven..." apk update && apk add --no-cache maven echo "Maven installed:" mvn -version fi # 3) Détecter automatiquement JAVA_HOME et le propager au reste du job - name: Detect JAVA_HOME dynamically shell: sh run: | JAVA_BIN=$(readlink -f "$(command -v java)") JAVA_HOME=$(dirname "$(dirname "$JAVA_BIN")") echo "Detected JAVA_HOME=$JAVA_HOME" echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV" # 4) Checkout du dépôt (Node est déjà garanti à ce stade) - name: Checkout repository uses: actions/checkout@v4 # 5) Vérification des versions (pour les logs) - name: Show Java & Maven versions shell: sh run: | echo "JAVA_HOME is: $JAVA_HOME" java -version mvn -version # 6) Build Maven - name: Build with Maven shell: sh run: mvn -B clean verify