#
# 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: Backend

on:
  push:
    branches:
      - dev
    paths:
      - '.github/workflows/backend.yml'
      - 'package.xml'
      - 'pom.xml'
      - 'dolphinscheduler-alert/**'
      - 'dolphinscheduler-api/**'
      - 'dolphinscheduler-common/**'
      - 'dolphinscheduler-dao/**'
      - 'dolphinscheduler-rpc/**'
      - 'dolphinscheduler-server/**'
  pull_request:
    paths:
      - '.github/workflows/backend.yml'
      - 'package.xml'
      - 'pom.xml'
      - 'dolphinscheduler-alert/**'
      - 'dolphinscheduler-api/**'
      - 'dolphinscheduler-common/**'
      - 'dolphinscheduler-dao/**'
      - 'dolphinscheduler-rpc/**'
      - 'dolphinscheduler-server/**'

concurrency:
  group: backend-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Sanity Check
        uses: ./.github/actions/sanity-check
        with:
          token: ${{ secrets.GITHUB_TOKEN }} # We only need to pass this token in one workflow
      - uses: actions/cache@v2
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven
      - name: Build and Package
        run: |
          ./mvnw -B clean install \
                 -Prelease \
                 -Dmaven.test.skip=true \
                 -Dcheckstyle.skip=true \
                 -Dhttp.keepAlive=false \
                 -Dmaven.wagon.http.pool=false \
                 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
      - name: Check dependency license
        run: tools/dependencies/check-LICENSE.sh
