# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Continuous Integration

on:
  push:
    branches: [ '*' ]
  pull_request:
    branches: [ '*' ]

env:
  MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3

jobs:
  build:
    strategy:
      matrix:
        java: [ 11, 17, 18 ]
    name: "Java ${{ matrix.java }}"
    runs-on: ubuntu-18.04
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Cache Maven Repository
      uses: actions/cache@v2
      with:
        path: ~/.m2/repository
        key: maven-java-${{ matrix.java }}-${{ hashFiles('**/pom.xml') }}
        restore-keys: |
          maven-java-${{ matrix.java }}-
          maven-
    - name: Set up Java
      uses: actions/setup-java@v2
      with:
        distribution: 'zulu'
        java-version: ${{ matrix.java }}
    - name: Build
      run: mvn -B -e -Papache-release -Dgpg.skip=true verify
    - name: Remove Snapshots
      run: find ~/.m2/repository -name '*-SNAPSHOT' -a -type d -print0 | xargs -0 rm -rf
  deploy:
    if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'apache/ws-axiom'
    name: Deploy
    runs-on: ubuntu-18.04
    needs: build
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Cache Maven Repository
      uses: actions/cache@v2
      with:
        path: ~/.m2/repository
        key: maven-deploy-${{ hashFiles('**/pom.xml') }}
        restore-keys: |
          maven-deploy-
          maven-
    - name: Set up Java
      uses: actions/setup-java@v2
      with:
        distribution: 'zulu'
        java-version: 11
        server-id: apache.snapshots.https
        server-username: NEXUS_USER
        server-password: NEXUS_PW
    - name: Deploy
      run: mvn -B -e -Papache-release -Dgpg.skip=true -DskipTests=true deploy
      env:
        NEXUS_USER: ${{ secrets.NEXUS_USER }}
        NEXUS_PW: ${{ secrets.NEXUS_PW }}
    - name: Remove Snapshots
      run: find ~/.m2/repository -name '*-SNAPSHOT' -a -type d -print0 | xargs -0 rm -rf
