name: Build Packages

on:
  watch:
    types: started

jobs:
  build:
    if: github.event.repository.owner.id == github.event.sender.id
    name: Build ${{ matrix.arch }}-${{ matrix.tag }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        arch:
          - aarch64_cortex-a53
          - aarch64_cortex-a72
          - aarch64_generic
          - arm_arm1176jzf-s_vfp
          - arm_arm926ej-s
          - arm_cortex-a15_neon-vfpv4
          - arm_cortex-a5_vfpv4
          - arm_cortex-a7
          - arm_cortex-a7_neon-vfpv4
          - arm_cortex-a8_vfpv3
          - arm_cortex-a9
          - arm_cortex-a9_neon
          - arm_cortex-a9_vfpv3-d16
          - arm_fa526
          - arm_mpcore
          - arm_xscale
          - i386_pentium-mmx
          - i386_pentium4
          - mips64_octeonplus
          - mips_24kc
          - mips_4kec
          - mips_mips32
          - mipsel_24kc
          - mipsel_24kc_24kf
          - mipsel_74kc
          - mipsel_mips32
          - x86_64
        tag:
          - openwrt-21.02
          - openwrt-22.03

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Build Packages
        uses: sbwml/openwrt-gh-action-sdk@openwrt_helloworld
        env:
          ARCH: ${{ matrix.arch }}-${{ matrix.tag }}
          FEEDNAME: packages_ci
          PACKAGES: luci-app-passwall luci-app-ssr-plus brook hysteria ipt2socks pdnsd redsocks2 trojan trojan-go xray-plugin v2ray-geodata naiveproxy sagernet-core chinadns-ng
          KEY_BUILD: ${{ secrets.sign_key }}
          NO_REFRESH_CHECK: true

      - name: Upload artifacts
        uses: actions/upload-artifact@v3
        with:
          name: ${{ matrix.tag }}-${{ matrix.arch }}
          path: bin/packages/${{ matrix.arch }}/packages_ci/*.ipk

      - name: Upload FTP
        uses: sbwml/FTP-Deploy-Action@master
        with:
          server: ${{ secrets.ftp_address }}
          username: ${{ secrets.ftp_username }}
          password: ${{ secrets.ftp_password }}
          server-dir: ${{ matrix.tag }}/${{ matrix.arch }}/
          local-dir: bin/packages/${{ matrix.arch }}/packages_ci/
          dangerous-clean-slate: true

      - name: Create metadata
        run: |
          sshpass -p ${{ secrets.server_password }} ssh -o StrictHostKeyChecking=no root@${{ secrets.ftp_address }} >/dev/null 2>&1
          sshpass -p ${{ secrets.server_password }} ssh root@${{ secrets.ftp_address }} "/opt/sbin/opkg"
