name: Build and Deploy

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    container:
      image: maven:3.9-eclipse-temurin-17
    steps:
      - name: Checkout
        run: |
          git clone --depth=1 --branch=${GITHUB_REF_NAME} \
            http://gitea:3000/${GITHUB_REPOSITORY}.git .

      - name: Configure Maven settings
        run: |
          mkdir -p ~/.m2
          cat > ~/.m2/settings.xml << 'SETTINGS'
          <settings>
            <mirrors>
              <mirror>
                <id>nexus</id>
                <mirrorOf>*</mirrorOf>
                <url>https://nexus.gc-si.dev/repository/maven-public/</url>
              </mirror>
            </mirrors>
            <servers>
              <server>
                <id>nexus</id>
                <username>${{ secrets.NEXUS_USERNAME }}</username>
                <password>${{ secrets.NEXUS_PASSWORD }}</password>
              </server>
            </servers>
          </settings>
          SETTINGS

      - name: Install Node.js
        run: |
          curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
          apt-get install -y nodejs
          node --version
          npm --version

      - name: Build Frontend
        run: |
          cd frontend
          npm install
          npm run build
          cd ..

      - name: Build Backend
        run: mvn clean package -DskipTests -Dfrontend.skip=true -B

      - name: Deploy
        run: |
          cp target/snp-connection-monitoring-*.jar /deploy/snp-connection/app.jar
          date '+%Y-%m-%d %H:%M:%S' > /deploy/snp-connection/.deploy-trigger
          echo "Deployed at $(cat /deploy/snp-connection/.deploy-trigger)"
          ls -la /deploy/snp-connection/
