name: 'Release: Publish'

on:
  pull_request:
    types:
      - closed
    branches:
      - 'release/*'

jobs:
  publish-release:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest

    permissions:
      contents: write

    timeout-minutes: 60

    steps:
      - name: Checkout
        uses: actions/checkout@v3.5.3
        with:
          fetch-depth: 0

      - uses: pnpm/action-setup@v2.4.0
      - uses: actions/setup-node@v3.7.0
        with:
          node-version: 18.x
          cache: 'pnpm'
      - run: pnpm install --frozen-lockfile

      - name: Set release version in env
        run: echo "RELEASE=$(node -e 'console.log(require("./package.json").version)')" >> $GITHUB_ENV

      - name: Build
        run: pnpm build

      - name: Publish to NPM
        run: |
          echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
          node scripts/trim-fe-packageJson.js
          sed -i "s/default: 'dev'/default: 'stable'/g" packages/cli/dist/config/schema.js
          pnpm publish -r --publish-branch ${{github.event.pull_request.base.ref}} --access public --tag rc --no-git-checks
          npm dist-tag rm n8n rc

      - name: Create a Release on GitHub
        uses: ncipollo/release-action@v1
        with:
          commit: ${{github.event.pull_request.base.ref}}
          tag: 'n8n@${{env.RELEASE}}'
          prerelease: true
          makeLatest: false
          body: ${{github.event.pull_request.body}}

      - name: Trigger a release note
        continue-on-error: true
        run: curl -u docsWorkflows:${{ secrets.N8N_WEBHOOK_DOCS_PASSWORD }} --request GET 'https://internal.users.n8n.cloud/webhook/trigger-release-note' --header 'Content-Type:application/json' --data '{"version":"${{env.RELEASE}}"}'

      # - name: Merge Release into 'master'
      #   run: |
      #     git fetch origin
      #     git checkout --track origin/master
      #     git config user.name "Jan Oberhauser"
      #     git config user.email jan.oberhauser@gmail.com
      #     git merge --ff n8n@${{env.RELEASE}}
      #     git push origin master
      #     git push origin :${{github.event.pull_request.base.ref}}
