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

on:
  schedule:
    # Run at 3 during the night
    - cron:  '0 3 * * *'
  workflow_dispatch:

jobs:
  generate_changelog:
    runs-on: ubuntu-20.04
    name: Generate changelog for main branch
    if: github.ref == 'refs/heads/main' && github.repository == 'apache/camel-k'
    steps:
      - name: "Checkout camel-k"
        uses: actions/checkout@v2
        with:
          persist-credentials: false
          submodules: recursive

      - name: Generate changelog
        uses: ./.github/actions/changelog
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          release_branch: "main"

      - name: Commit files
        env:
          CI_USER: "github-actions[bot]"
          CI_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com"
        run: |
          git config --local user.email "$CI_EMAIL"
          git config --local user.name "$CI_USER"
          git add CHANGELOG.md && git commit -m 'Updated CHANGELOG.md' && echo "push=1" >> $GITHUB_ENV || echo "No changes to CHANGELOG.md"

      - name: Push changes
        if: env.push == 1
        env:
          CI_USER: "github-actions[bot]"
          CI_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com"
          CI_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git push "https://$CI_USER:$CI_TOKEN@github.com/$GITHUB_REPOSITORY.git" HEAD:main
