name: Build release and Deploy to wordpress.org
on:
  release:
    types: [published]
jobs:
  tag:
    name: New tag
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Check Release Type and Branch
        id: check_release
        run: |
         if [[ "${{ github.ref }}" != "refs/heads/master" && "${{ github.event.release.prerelease }}" == "true" ]]; then
            echo "Branch is not master, and release type is prerelease. Skipping deployment."
            exit 0
          fi
      - name: Set env
        id: vars
        run: echo ::set-output name=tag::${GITHUB_REF:10}
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.1'
          extensions: mbstring, xml, zip
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 'lts/*'
      - name: Install Composer dependencies
        run: composer install --no-interaction
      - name: Install npm dependencies
        run: npm ci --legacy-peer-deps
      - name: Build and create release zip
        id: build
        run: |
          npx grunt release
          echo "zip_path=release/brutefort.zip" >> $GITHUB_OUTPUT
      - name: WordPress Plugin Deploy
        uses: 10up/action-wordpress-plugin-deploy@master
        env:
          SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
          SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
      - name: Upload release asset
        run: |
          ASSET_NAME=$(basename ${{ steps.build.outputs.zip_path }})
          UPLOAD_URL="${{ github.event.release.upload_url }}"
          UPLOAD_URL="${UPLOAD_URL/\{?name,label\}/?name=${ASSET_NAME}}"
          curl -X POST \
            -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            -H "Content-Type: application/zip" \
            --data-binary @"${{ steps.build.outputs.zip_path }}" \
            "${UPLOAD_URL}"
