# ---------------------------------------------------------------------------
# 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: automatic-updates
description: 'action used to run automation required by the project'

inputs:
  branch-ref:
    required: true
    type: string
  secretGithubToken:
    required: true

runs:
  using: "composite"
  steps:
    - name: Sync Camel Quarkus and commit
      shell: bash
      env:
        CI_USER: "github-actions[bot]"
        CI_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com"
      run: |
        ./scripts/sync_cq.sh
        git config --local user.email "$CI_EMAIL"
        git config --local user.name "$CI_USER"
        git add -A && git commit -m 'feat: new Camel Quarkus version' && echo "sync=1" >> $GITHUB_ENV || echo "No changes in the release"

    - name: Generate changelog
      uses: ./.github/actions/changelog
      with:
        token: ${{ inputs.secretGithubToken }}
        release_branch: ${{ inputs.branch-ref }}
    - name: Commit changelog files
      shell: bash
      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 'chore: update changelog' && echo "changelog=1" >> $GITHUB_ENV || echo "No changes to CHANGELOG.md"

    - name: Set up JDK
      uses: actions/setup-java@v3
      with:
        distribution: 'temurin'
        java-version: 17
        cache: 'maven'
    - name: Build Camel-k-runtime Project for generating SBOM
      shell: bash
      run: ./mvnw -V --no-transfer-progress clean install -DskipTests -Psbom
    - name: Commit sbom files
      shell: bash
      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 camel-k-runtime-sbom && git commit -m 'chore: update SBOM' && echo "sbom=1" >> $GITHUB_ENV || echo "No changes to SBOM"

    - name: Push changes
      shell: bash
      if: env.sync == 1 || env.changelog == 1 || env.sbom == 1
      env:
        CI_USER: "github-actions[bot]"
        CI_EMAIL: "41898282+github-actions[bot]@users.noreply.github.com"      
        CI_TOKEN: ${{ inputs.secretGithubToken }}
      run: |
        git config --local user.email "$CI_EMAIL"
        git config --local user.name "$CI_USER"
        git push "https://$CI_USER:$CI_TOKEN@github.com/$GITHUB_REPOSITORY.git" HEAD:${{ inputs.branch-ref }}
