# This is a basic workflow to help you get started with Actions

name: Build CasaOS

on:
  repository_dispatch:
  workflow_dispatch:
    inputs:
      ssh:
        description: 'SSH connection to Actions'
        required: false
        default: 'false'

#on:
#  push:
#    branches:
#      - 'main'
#    tags:
#      - 'v*'
env:
  REPO_URL: https://github.com/IceWhaleTech/CasaOS.git
  REPO_BRANCH: main
  PACK_SH_URL: https://raw.githubusercontent.com/jerrykuku/actions-casa/main/pack.sh
  PACK_SH: pack.sh
  TZ: Asia/Shanghai

jobs:
  xgo:
    strategy:
      fail-fast: false
      matrix:
        go_version:
          - 1.17.1
    runs-on: ubuntu-latest
    steps:

      #      - name: Get release
      #        id: get_release
      #        uses: bruceadams/get-release@v1.2.3
      #        env:
      #          GITHUB_TOKEN: ${{ github.token }}

      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
          submodules: true
#      - name: Initialization environment
#        env:
#          DEBIAN_FRONTEND: noninteractive
#        run: |
#          sudo timedatectl set-timezone "$TZ"
#          sudo mkdir -p /workdir
#          sudo chown $USER:$GROUPS /workdir





      #      - name: Clone source code
      #        working-directory: /workdir
      #        run: |
      #          df -hT $PWD
      #          git clone $REPO_URL -b $REPO_BRANCH --recursive casa
      #          ln -sf /workdir/casa $GITHUB_WORKSPACE/casa
      #          ls
      

      - name: Set environment for github-release
        run: |
          echo "VERSION=$(cat types/system.go | grep CURRENTVERSION | awk '$2 == "CURRENTVERSION"{print $4}' | sed 's/"//g')" >>$GITHUB_ENV
          echo "BODY=$(cat types/system.go | grep BODY | awk -F= '{print $2}' | sed 's/"//g')" >>$GITHUB_ENV



      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '14'
          
      - name: Build frontend with nodejs and yarn
        run: |
          cd UI
          ls
          yarn install
          yarn build

      - name: list work
        run: pwd

      - name: Build with xgo
        uses: crazy-max/ghaction-xgo@v1
        with:
          xgo_version: v0.7.5
          go_version: ${{ matrix.go_version }}
          dest: build
          prefix: casa
          targets: linux/amd64,linux/arm64,linux/arm-7
          v: true
          x: false
          race: false
          ldflags: -s -w
          buildmode: default
#
#      - name: List Files
#        run: |
#          ls
#          mkdir build
#          ls
#          echo "::set-output name=status::success"

      - name: Pack builds
        run: |
          wget $PACK_SH_URL
          chmod +x $PACK_SH
          ./$PACK_SH
          echo "::set-output name=status::success"
      - name: list work
        run: ls


      - name: Update release
        uses: meeDamian/github-release@2.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          files: >
            linux-amd64-casaos.tar.gz
            linux-arm64-casaos.tar.gz
            linux-arm-7-casaos.tar.gz
          tag: v${{ env.VERSION }}
          body: >
            ${{ env.BODY }}
          name: v${{ env.VERSION }}
          gzip: false
          allow_override: false
          prerelease: true
#      - name: Upload linux-amd64-casaos.tar.gz
#        id: upload_assets_amd64
#        uses: shogo82148/actions-upload-release-asset@v1
#        with:
#          upload_url: ${{ steps.get_release.outputs.upload_url }}
#          asset_path: /workdir/casa/upload/linux-amd64-casaos.tar.gz
#
#      - name: Upload linux-arm64-casaos.tar.gz
#        id: upload_assets_arm64
#        uses: shogo82148/actions-upload-release-asset@v1
#        with:
#          upload_url: ${{ steps.get_release.outputs.upload_url }}
#          asset_path: /workdir/casa/upload/linux-arm64-casaos.tar.gz
