name: Build and Package OPKG

on:
  push:
    branches:
      - main

jobs:
  build:
    name: Build ${{ matrix.arch }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        arch: [mipsel, mips, aarch64, armv7, armv5]
        include:
          - arch: mipsel
            goos: linux
            goarch: mipsle
            gomips: softfloat
          - arch: mips
            goos: linux
            goarch: mips
            gomips: softfloat
          - arch: aarch64
            goos: linux
            goarch: arm64
          - arch: armv7
            goos: linux
            goarch: arm
            goarm: 7
          - arch: armv5
            goos: linux
            goarch: arm
            goarm: 5
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up Go
        uses: actions/setup-go@v5
        with:
          go-version: '1.21'
          cache: false

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y fakeroot

      - name: Build and Package
        run: |
          ARCH=${{ matrix.arch }} GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} GOMIPS=${{ matrix.gomips }} GOARM=${{ matrix.goarm }} make

      - name: Upload artifact
        uses: actions/upload-artifact@v3
        with:
          name: kvas2_${{ matrix.arch }}.ipk
          path: .build/kvas2_${{ matrix.arch }}.ipk