name: Main 
on:
  push:
    branches:
      - main
jobs:
  build-deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          registry-url: 'https://registry.npmjs.org'

      - run: npm install
      - run: npm run build
#      - run: npm run create:ast
      - run: apt-get update && apt-get install -y rsync
      - name: Create private key
        run: |
          echo "${{ secrets.ACT_RUNNER_KEY }}" > /tmp/act_runner_key
          chmod 600 /tmp/act_runner_key          
      - name: rsync public directory
        run: |
          /usr/bin/rsync -avz --delete -e "ssh -i /tmp/act_runner_key -o StrictHostKeyChecking=no" ${{ gitea.workspace }}/dist/* root@vps03.hadan-it.com:/data/webspace/techstack.hadan.de/          

      - name: ntfy-success-notifications
        uses: https://github.com/niniyas/ntfy-action@master
        if: success()
        with:
          title: 'Forgejo Actions'
          url: '${{ secrets.NTFY_URL }}'
          topic: '${{ secrets.NTFY_TOPIC }}'
          priority: 4
          headers: '${{ secrets.NTFY_HEADERS }}'
          tags: +1,partying_face,action,successfully,completed
          details: Workflow has been successfully completed!
          icon: 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Forgejo_logo.svg/512px-Forgejo_logo.svg.png'
          image: true

      - name: ntfy-failed-notifications
        uses: https://github.com/niniyas/ntfy-action@master
        if: failure()
        with:
          title: 'Forgejo Actions'
          url: '${{ secrets.NTFY_URL }}'
          topic: '${{ secrets.NTFY_TOPIC }}'
          priority: 5
          headers: '${{ secrets.NTFY_HEADERS }}'
          tags: +1,partying_face,action,failed
          details: Workflow has failed!
          actions: 'default'
          icon: 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Forgejo_logo.svg/512px-Forgejo_logo.svg.png'
          image: true

      - name: ntfy-cancelled-notifications
        uses: https://github.com/niniyas/ntfy-action@master
        if: cancelled()
        with:
          title: 'Forgejo Actions'
          url: '${{ secrets.NTFY_URL }}'
          topic: '${{ secrets.NTFY_TOPIC }}'
          priority: 3
          headers: '${{ secrets.NTFY_HEADERS }}'
          tags: +1,partying_face,action,cancelled
          details: Workflow has been cancelled!
          actions: '[{"action": "view", "label": "Open portal", "url": "https://techstack.preview.hadan.de/", "clear": true}]'
          icon: 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/05/Forgejo_logo.svg/512px-Forgejo_logo.svg.png'
          image: true

      - run: echo "This job's status is ${{ job.status }}."