name: Build & Release
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
  push:
    tags:
      - "v*"

jobs:
  Linux-AMD64-Build:
    runs-on: linux-x86_64
    steps:
      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Installing Dependencies
        run: |
          sudo pacman -S --noconfirm doxygen zip alsa-lib libxcb xcb-util-cursor

      - name: Generating Documentation
        run: |
          doxygen ehs-docs-config.doxyfile

      - name: Building/Compiling Project
        run: |
          cd ${{ gitea.workspace }}
          cmake -DCMAKE_BUILD_TYPE=Release -DLINUX_WINDOW_SYSTEM:STRING=XCB .
          cmake --build . --config Release
          rm -R ~/.local/include/ehs
          cmake --install .

      - name: Creating Appropriate Directories
        run: |
          mkdir bin
          mv StrToHash bin
          mkdir lib
          mv libEHS.a lib

      - name: Zipping Binaries
        run: zip -r ehs-linux-amd64.zip include bin lib docs

      - uses: https://github.com/actions/setup-go@v4
        with:
          go-version: '>=1.20.1'

      - name: Use Go Action
        id: use-go-action
        uses: https://gitea.com/actions/release-action@main
        with:
          files: |-
            ehs-linux-amd64.zip
          api_key: '${{secrets.RELEASE_TOKEN}}'

  Linux-AARCH64-Build:
    runs-on: linux-aarch64
    steps:
      - name: Check out repository code
        uses: actions/checkout@v3

      - name: Installing Dependencies
        run: sudo apt install -y doxygen zip libasound2-dev libxcb1-dev libxcb-xinput-dev libxcb-cursor-dev

      - name: Generating Documentation
        run: |
          doxygen ehs-docs-config.doxyfile

      - name: Building/Compiling Project
        run: |
          cd ${{ gitea.workspace }}
          cmake -DCMAKE_BUILD_TYPE=Debug -DLINUX_WINDOW_SYSTEM:STRING=XCB .
          cmake --build . --config Debug
          rm -R ~/.local/include/ehs
          cmake --install .

      - name: Creating Appropriate Directories
        run: |
          mkdir bin
          mv StrToHash bin
          mkdir lib
          mv libEHS.a lib

      - name: Zipping Binaries
        run: zip -r ehs-linux-aarch64.zip include bin lib docs

      - uses: https://github.com/actions/setup-go@v4
        with:
          go-version: '>=1.20.1'

      - name: Use Go Action
        id: use-go-action
        uses: https://gitea.com/actions/release-action@main
        with:
          files: |-
            ehs-linux-aarch64.zip
          api_key: '${{secrets.RELEASE_TOKEN}}'