name: Create Release
on:
  workflow_dispatch:
  push:
    tags:
      - "v*"

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.x]
    steps:

      - name: Checking out project
        uses: actions/checkout@v3

      - name: Installing Node ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'npm'

      - name: Installing dependencies via NPM
        run: |
          npm config set @sencha:registry https://npm.sencha.com/
          npm config set //npm.sencha.com/:_authToken=${{ secrets.SENCHA_ACCESS_TOKEN }}
          npm ci

      - name: Build Ext JS & zip build
        run: |
          npm run build
          mkdir ./build/zip && mkdir ./build/zip/extjs-app-imapuser
          cp ./build/deploy/* ./build/zip/extjs-app-imapuser -R
          cd ./build/zip && zip -r ../../release.zip ./extjs-app-imapuser

      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          draft: false
          prerelease: false

      - name: Upload assets
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./release.zip
          asset_name: extjs-app-imapuser.build.${{ github.ref }}.zip
          asset_content_type: application/zip
