name: Build Resilient App [DISABLED]

# on:
#   push:
#     branches: [main, master, develop]
#   pull_request:
#   workflow_dispatch:

jobs:
  build:
    runs-on: [docker]

    steps:
      # Install software dependencies into the runner container
      - name: Install system dependencies
        run: |
          apt-get update
          apt-get install -y nodejs npm openjdk-17-jdk maven git
          export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
          echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV

      - name: Check Java and Node versions
        run: |
          java -version
          mvn -v
          node -v
          npm -v
          
      # Checkout (clone) a fresh repo source of the project
      - name: Checkout repository
        uses: actions/checkout@v4
  
      # Install @Angular dependencies
      - name: Install frontend dependencies
        run: |
          cd src/main/webapp
          npm ci

      # Setup node_modules cache, for better performance
      - name: Cache node_modules
        uses: actions/cache@v3
        with:
          path: |
            **/node_modules
          key: node-modules-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            node-modules-
      
      # Build the frontend
      - name: Build frontend
        run: |
          cd src/main/webapp
          npm run build

      # Setup Maven cache, for better performance
      - name: Cache Maven dependencies
        uses: actions/cache@v3
        with:
          path: ~/.m2/repository
          key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
        restore-keys: |
          maven-${{ runner.os }}-
      
      # Build the backend (JAR)
      - name: Build backend (Spring Boot)
        run: |
          mvn clean package -Pprod -DskipTests

      # Log output
      - name: List output files
        run: |
          ls -lh target/*.jar || true
          
      # save artifacts
      - name: Upload backend JAR
        uses: actions/upload-artifact@v3
        with:
          name: app-backend
          path: target/resilient*.jar
