name: main-build

on:
  push:
    branches:
      - main

jobs:
  build-merged:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '16'
    - name: Run npm steps
      run: |
        npm install
        npm run merge
        npm run merge.ci
    - name: build-merged-build
      run: ./ci/build-merged-build.sh
    - name: deploy-merged-build
      uses: peaceiris/actions-gh-pages@v3
      if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
      with:
        deploy_key: ${{ secrets.DEPLOY_ABAPGIT_BUILD }}
        external_repository: abapGit/build
        user_name: 'github-actions[bot]'
        user_email: 'github-actions[bot]@users.noreply.github.com'
        publish_branch: main
        publish_dir: ../build
    - name: Upload build artifact
      if: always()
      uses: actions/upload-artifact@main
      with:
        name: zabapgit_standalone.abap
        path: ./zabapgit.abap
        retention-days: 7

  auto-tag:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 2
    - uses: actions/setup-node@v3
      with:
        node-version: '16'
    - name: deploy-release-tag
      if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
      env:
        GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }}
      run: ./ci/deploy-release-tag.sh

  coverage:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v3
      with:
        node-version: '16'
    - name: npm run unit
      run: |
        npm install
        npm run unit
    - name: npm run coverage
      run: |
        npm run coverage
    - name: Update coverage.abapgit.org
      uses: peaceiris/actions-gh-pages@v3
      if: github.ref == 'refs/heads/main' && github.repository == 'abapGit/abapGit'
      with:
        deploy_key: ${{ secrets.COVERAGE_DEPLOY_KEY }}
        external_repository: abapGit/coverage.abapgit.org
        user_name: 'github-actions[bot]'
        user_email: 'github-actions[bot]@users.noreply.github.com'
        publish_branch: main
        cname: coverage.abapgit.org
        force_orphan: true
        publish_dir: ./coverage
