# GitLab CI/CD Pipeline for Kalamar-Plugin-Export
# This pipeline runs tests on pushes and builds Docker containers on tag pushes and manual triggers

stages:
  - test-and-build
  - build
  - deploy

variables:
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
  DOCKER_IMAGE_NAME: "korap/kalamar-plugin-export"

# Cache Maven dependencies
cache:
  paths:
    - .m2/repository/

# Test and build stage - runs on all pushes
test-and-build:
  stage: test-and-build
  image: eclipse-temurin:22-jdk-alpine
  before_script:
    - apk add --no-cache maven
    - export MAVEN_OPTS="$MAVEN_OPTS"
  script:
    - mvn $MAVEN_CLI_OPTS clean test package
  artifacts:
    reports:
      junit:
        - target/surefire-reports/TEST-*.xml
    paths:
      - target/surefire-reports/
      - target/*.jar
    expire_in: 1 week
  only:
    - pushes
    - merge_requests

# Build Docker image stage - runs automatically for tags and is manually triggerable otherwise
build-docker:
  stage: build
  image: docker:24.0.5
  services:
    - docker:24.0.5-dind
  before_script:
    - apk add --no-cache xz
  script:
    - |
      if [ -n "$CI_COMMIT_TAG" ]; then
        export BUILD_SUFFIX="$CI_COMMIT_TAG"
        export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
        export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
        docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" -t "$DOCKER_IMAGE_NAME:latest" .
        docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" "$DOCKER_IMAGE_NAME:latest" | xz -c > "$ARTIFACT_NAME"
      else
        export BUILD_SUFFIX="$CI_COMMIT_SHORT_SHA"
        export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
        export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
        docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" .
        docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" | xz -c > "$ARTIFACT_NAME"
      fi
    - ls -lh "$ARTIFACT_NAME"
  artifacts:
    name: "kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
    paths:
      - "*.tar.xz"
    expire_in: 30 days
  rules:
    - if: "$CI_COMMIT_TAG"
      when: on_success
    - when: manual
  allow_failure: false

# Security scan stage (optional)
security-scan:
  stage: build
  image: eclipse-temurin:22-jdk-alpine
  before_script:
    - apk add --no-cache maven
  script:
    - mvn $MAVEN_CLI_OPTS clean compile
  allow_failure: true
  when: manual

# Deploy stage (placeholder for actual deployment)
deploy:
  stage: deploy
  image: alpine:latest
  before_script:
    - apk add --no-cache curl
  script:
    - curl --version
  only:
    - tags
  when: manual
  allow_failure: false
