name: Auto Publish Website
on:
  push:
    branches:
      - main
  workflow_dispatch:
    
permissions:
  contents: write
jobs:
  goreleaser:
    runs-on: ubuntu-22.04
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: isntall git
        run: sudo apt install --yes git
      - name: git global
        run: sudo git config --global --add safe.directory '*'
      - name: set version
        run: sudo git tag v00.00.00-alpha
        
      - name: Fetch all tags
        run: sudo git fetch --force --tags
        
      - name: Get version
        id: get_version
        # run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
        run: echo "VERSION=$(git describe --abbrev=0 --tags | awk -F- '{print $1}')" >> $GITHUB_ENV
        
      - name: show version
        id: show_version
        # run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
        run: echo ${{env.VERSION}}
        
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: 'stable'
          
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v4
        with:
          # either 'goreleaser' (default) or 'goreleaser-pro'
          distribution: goreleaser
          version: 1.14.1
          args: release --rm-dist --snapshot
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GoogleID: ${{ secrets.GoogleID }} 
          GoogleSecret: ${{ secrets.GoogleSecret }}
          DropboxKey: ${{ secrets.DropboxKey }}
          DropboxSecret: ${{ secrets.DropboxSecret }}
          OneDriveID: ${{ secrets.OneDriveID }}
          OneDriveSecret: ${{ secrets.OneDriveSecret }}
          # Your GoReleaser Pro key, if you are using the 'goreleaser-pro' distribution
          # GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
       
      - name: remove migration file
        run: sudo find . -type f  \( -name '*migration*' \) -delete
        
      - name: install sshpass
        run: sudo apt install sshpass --yes
        
      - name: ZeroTier
        uses: zerotier/github-action@v1.0.1
        with:
            network_id: ${{ secrets.ZEROTIER_NETWORK_ID }}
            auth_token: ${{ secrets.ZEROTIER_CENTRAL_TOKEN }}

      - name: ping host
        shell: bash
        run: |
          count=10
          while ! ping -c 1 10.147.18.11 ; do
            echo "waiting..." ;
            sleep 1 ;
            let count=count-1
          done
          echo "ping success"

      - name: copy tar to target host
        shell: bash
        run: |
          sshpass -p "${{ secrets.ssh_password }}" scp -r -o StrictHostKeyChecking=no -P 22 ./dist/*.gz root@10.147.18.11:/var/www/download
          echo "ping success"
      - name: send message
        run: |
          curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"text","content":{"text":"CasaOS updated"}}'  ${{ secrets.SSH_ROBOT_URL }}
