name: Build Applications
run-name: ${{ github.actor }} is building SmartLockerTools...
on: [push]
jobs:
  PullDocker:
    runs-on: [ubuntu-latest, ubuntu-24.04]
    steps:
      - name: Login to ACR
        uses: aliyun/acr-login@v1
        with:
          login-server: https://registry.cn-shenzhen.aliyuncs.com
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Pull Docker image
        run: docker pull registry.cn-shenzhen.aliyuncs.com/amass_toolset/ubuntu_dev:24.04
  Build:
    runs-on: [ubuntu-latest, ubuntu-24.04]
    container:
      image: registry.cn-shenzhen.aliyuncs.com/amass_toolset/ubuntu_dev:24.04
    steps:
      - name: Set up SSH
        run: |
          mkdir -p ~/.ssh/
          echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
          chmod 600 ~/.ssh/id_ed25519
          ssh-keyscan -t ed25519 -p 22022 frp-by1.wwvvww.cn >> ~/.ssh/known_hosts
      - name: Clone repository
        run: |
          echo "git clone --depth 1 --branch=${GITHUB_REF##*/} ssh://git@frp-by1.wwvvww.cn:22022/${{ gitea.repository }}.git"
          git clone --depth 1 --branch=${GITHUB_REF##*/} ssh://git@frp-by1.wwvvww.cn:22022/${{ gitea.repository }}.git .
          git checkout ${GITHUB_SHA}
      - run: resources/build.sh build
      - run: resources/build.sh deploy
      - name: Notify
        if: ${{ always() }}
        run: |
          echo "仓库名:   ${{ github.repository }}" >> notify.tpl
          echo "构建状态: ${{ job.status }}">> notify.tpl
          echo "构建地址: https://gitea.amass.fun/${{ github.repository }}/actions/runs/${{ github.run_number }}">> notify.tpl
          echo "仓库地址: https://gitea.amass.fun/${{ github.repository }}">> notify.tpl
          echo "提交ID:   $(git rev-parse --short HEAD)">> notify.tpl
          echo -n "提交消息: ${{ github.event.head_commit.message }}">> notify.tpl
          cat notify.tpl | envsubst |  jq -sR . | xargs -0  -I {} curl -H "Content-Type: application/json" -X POST -d '{"type":"text","msg":{} }' https://amass.fun/notify