name: nvim-dap-ui Workflow
on: [push]
jobs:
  style:
    name: style
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: JohnnyMorganz/stylua-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version: latest
          args: --check lua/ tests/
  tests:
    name: tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: date +%F > todays-date
      - name: Restore cache for today's nightly.
        uses: actions/cache@v2
        with:
          path: _neovim
          key: ${{ runner.os }}-x64-${{ hashFiles('todays-date') }}

      - name: Prepare dependencies
        run: |
          git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim
          git clone --depth 1 https://github.com/nvim-neotest/nvim-nio ~/.local/share/nvim/site/pack/vendor/start/nvim-nio
          git clone --depth 1 https://github.com/mfussenegger/nvim-dap ~/.local/share/nvim/site/pack/vendor/start/nvim-dap
          ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start

      - name: Run tests
        run: |
          curl -OL https://raw.githubusercontent.com/norcalli/bot-ci/master/scripts/github-actions-setup.sh
          source github-actions-setup.sh nightly-x64
          ./scripts/test
          
  release:
    name: release
    if: ${{ github.ref == 'refs/heads/master' }}
    needs: 
      - style
      - tests
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 20
      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release
