name: CD - Deploy on main on: pull_request: branches: - main jobs: deploy: runs-on: self-hosted steps: # 1) S'assurer que Node.js est installé - 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 JAVA_HOME dynamiquement et le propager - 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 - name: Checkout repository uses: actions/checkout@v4 # 5) Afficher quelques infos utiles - name: Show current commit and tools shell: sh run: | echo "Current commit:" git rev-parse HEAD echo "JAVA_HOME is: $JAVA_HOME" java -version mvn -version # 6) S'assurer que le client Docker + docker-compose sont installés - name: Ensure Docker CLI is installed shell: sh run: | if command -v docker >/dev/null 2>&1; then echo "Docker CLI already installed:" docker version || true else echo "Docker CLI not found, installing..." apk update && apk add --no-cache docker docker-compose echo "Docker CLI installed:" docker version || true fi # 7) Générer le .env utilisé par docker-compose-prod.yml - name: Generate .env from Gitea secrets shell: sh run: | cat > .env <