# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: Node.js CI

on:
  push:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ latest ] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - name: Checkout
      uses: actions/checkout@v5
      with:
        persist-credentials: false
        fetch-depth: 0

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v6
      with:
        node-version: ${{ matrix.node-version }}
        registry-url: 'https://registry.npmjs.org'
        cache: 'npm'
    - run: git config --global user.email "d.grammatiko@gmail.com"
    - run: git config --global user.name "dgrammatiko"
    - run: npm ci
    - run: npm run build --if-present
    - run: npm run coverage

    - name: Upload coverage reports to Codecov
      uses: codecov/codecov-action@v5
      with:
        fail_ci_if_error: true
        verbose: true
        token: ${{secrets.CODECOV_TOKEN}}

    - name: Increase Version
      run: node pub.mjs && npm install

    - name: Commit & Push changes
      uses: actions-js/push@master
      with:
        # message: "no publish"
        author_email: "d.grammatiko@gmail.com"
        author_name: "dgrammatiko"
        github_token: ${{ secrets.GITHUB_TOKEN }}

    - run: npm publish --access public
      env:
        NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

    #- run: |
    #  curl -XPOST -u "${{ secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/YOURNAME/APPLICATION_NAME/dispatches --data '{"event_type": "build_application"}'
