name: Filestash

on:
  push:
    branches:
      - main

permissions:
  contents: read # to fetch code (actions/checkout)

jobs:
  update:
    runs-on: ubuntu-latest
    environment: filestash
    env:
      NODE_VERSION: 20.x
    name: Update Filestash
    steps:
      - name: Checkout
        uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2

      - name: Use Node.js ${{ env.NODE_VERSION }}
        uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
        with:
          node-version: ${{ env.NODE_VERSION }}

      - name: Cache
        uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-

      - name: Install dependencies
        run: npm install

      - name: Build
        run: npm run build

      - name: Set up SSH
        run: |
          install --directory ~/.ssh --mode 700
          base64 --decode <<< "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
          chmod 600 ~/.ssh/id_ed25519
          ssh-keyscan -t ed25519 -H "${{ secrets.FILESTASH_SERVER }}" >> ~/.ssh/known_hosts

      - name: Upload to Filestash
        run: |
          rsync dist/jquery-ui.js filestash@"${{ secrets.FILESTASH_SERVER }}":ui/jquery-ui-git.js
          rsync dist/jquery-ui.css filestash@"${{ secrets.FILESTASH_SERVER }}":ui/jquery-ui-git.css
