name: build-arm64-debian-packages

on:
  workflow_dispatch:
    inputs:
      tag:
        description: 'Tag to include in artifact name'
        required: true
  workflow_call:
    inputs:
      tag:
        description: 'Tag to include in artifact name'
        required: true
        type: string
  push:
    tags:
      - "*"

jobs:
  build-jammy-arm64-package:
    runs-on: lux-build

    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/setup-go-for-project
      - run: go version

      - name: Build the luxd binaries (cross-compile arm64 on amd64)
        run: CGO_ENABLED=0 GOOS=linux GOARCH=arm64 ./scripts/build.sh

      - name: Try to get tag from git
        if: "${{ github.event.inputs.tag == '' }}"
        id: get_tag_from_git
        run: |
          echo "TAG=${GITHUB_REF/refs\/tags\//}" >> "$GITHUB_ENV"
        shell: bash

      - name: Try to get tag from workflow dispatch
        if: "${{ github.event.inputs.tag != '' }}"
        id: get_tag_from_workflow
        run: |
          echo "TAG=${{ github.event.inputs.tag }}" >> "$GITHUB_ENV"
        shell: bash

      - name: Create debian package
        run: ./.github/workflows/build-deb-pkg.sh
        env:
          PKG_ROOT: /tmp/luxd
          TAG: ${{ env.TAG }}
          BUCKET: ${{ secrets.BUCKET }}
          ARCH: "arm64"
          RELEASE: "jammy"

      - name: Save as Github artifact
        uses: actions/upload-artifact@v7
        with:
          name: jammy-arm64
          path: /tmp/luxd/luxd-${{ env.TAG }}-arm64.deb

      - name: Cleanup
        run: |
          rm -rf ./build
          rm -rf /tmp/luxd

  build-focal-arm64-package:
    runs-on: lux-build

    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/setup-go-for-project
      - run: go version

      - name: Build the luxd binaries (cross-compile arm64 on amd64)
        run: CGO_ENABLED=0 GOOS=linux GOARCH=arm64 ./scripts/build.sh

      - name: Try to get tag from git
        if: "${{ github.event.inputs.tag == '' }}"
        id: get_tag_from_git
        run: |
          echo "TAG=${GITHUB_REF/refs\/tags\//}" >> "$GITHUB_ENV"
        shell: bash

      - name: Try to get tag from workflow dispatch
        if: "${{ github.event.inputs.tag != '' }}"
        id: get_tag_from_workflow
        run: |
          echo "TAG=${{ github.event.inputs.tag }}" >> "$GITHUB_ENV"
        shell: bash

      - name: Create debian package
        run: ./.github/workflows/build-deb-pkg.sh
        env:
          PKG_ROOT: /tmp/luxd
          TAG: ${{ env.TAG }}
          BUCKET: ${{ secrets.BUCKET }}
          ARCH: "arm64"
          RELEASE: "focal"

      - name: Save as Github artifact
        uses: actions/upload-artifact@v7
        with:
          name: focal-arm64
          path: /tmp/luxd/luxd-${{ env.TAG }}-arm64.deb

      - name: Cleanup
        run: |
          rm -rf ./build
          rm -rf /tmp/luxd
