name: Node-CI Beta

on:
  push:
    branches: [beta-*.*.*, beta]
  workflow_dispatch:

jobs:
  build_and_test:
    uses: OpenWonderLabs/.github/.github/workflows/nodejs-build-and-test.yml@latest
    with:
      enable_coverage: true
    secrets:
      token: ${{ secrets.GITHUB_TOKEN }}

  lint:
    needs: build_and_test
    uses: OpenWonderLabs/.github/.github/workflows/eslint.yml@latest

  publish:
    needs: lint
    if: ${{ github.repository == 'OpenWonderLabs/node-switchbot' }}
    uses: OpenWonderLabs/.github/.github/workflows/npm-publish.yml@latest
    with:
      tag: 'beta'
      dynamically_adjust_version: true
      npm_version_command: 'pre'
      pre_id: 'beta'
    secrets:
      npm_auth_token: ${{ secrets.npm_token }}

  pre-release:
    needs: publish
    if: ${{ github.repository == 'OpenWonderLabs/node-switchbot' }}
    uses: OpenWonderLabs/.github/.github/workflows/pre-release.yml@latest
    with:
      npm_version: ${{ needs.publish.outputs.NPM_VERSION }}
      body: |
        **Beta Release**
        **Version**: v${{ needs.publish.outputs.NPM_VERSION }}
        [How To Test Beta Releases](https://github.com/OpenWonderLabs/homebridge-switchbot/wiki/Beta-Version)

  github-releases-to-discord:
    name: Discord Webhooks
    needs: [build_and_test,publish]
    if: ${{ github.repository == 'OpenWonderLabs/node-switchbot' }}
    uses: OpenWonderLabs/.github/.github/workflows/discord-webhooks.yml@latest
    with:
      title: "Node-SwitchBot Beta Release"
      description: |
        Version `v${{ needs.publish.outputs.NPM_VERSION }}`
      url: "https://github.com/homebridge/camera-utils/releases/tag/v${{ needs.publish.outputs.NPM_VERSION }}"
    secrets:
      DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL_BETA || secrets.DISCORD_WEBHOOK_URL_LATEST }}