kind: pipeline
type: docker
name: default
steps:
  - name: build
    image: maven:3.8-openjdk-18-slim
    commands:
      - mvn clean install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
    when:
      ref:
        include:
          - refs/head/master
          - refs/head/feature/**
          - refs/tags/**
  - name: test
    image: maven:3.8-openjdk-18-slim
    commands:
      - mvn test -B
    when:
      branch:
        include:
          - master
          - feature/*
  - name: deploy
    image: maven:3.8-openjdk-18-slim
    environment:
      REPO_TOKEN:
        from_secret: repo-token
      REPO_TOKEN_OSSRH:
        from_secret: repo-token-ossrh
    commands:
      - mvn -s maven-settings.xml deploy -DskipTests=true
    when:
      branch:
        - master
      event:
        exclude:
          - pull_request
  - name: build_docker_image
    image: plugins/docker
    settings:
      registry: gittr.ch
      username: manuel
      password:
        from_secret: docker-token
      repo: gittr.ch/java/a-maze-r
      tags:
        - latest
      dockerfile: docker/Dockerfile
    when:
      branch:
        - master
      event:
        exclude:
          - pull_request
          - tag
  - name: build_docker_image_release
    image: plugins/docker
    settings:
      registry: gittr.ch
      username: manuel
      password:
        from_secret: docker-token
      repo: gittr.ch/java/a-maze-r
      tags:
        - latest
        - ${DRONE_TAG}
      dockerfile: docker/Dockerfile
    when:
      event:
        include:
          - tag