name: Build gen_emu_config script (Linux)

on:
  workflow_call:
    # needed since it allows this to become a reusable workflow
  workflow_dispatch:
    # allows manual trigger

permissions:
  contents: write

env:
  ARTIFACT_NAME: "generate_emu_config-linux-${{ github.sha }}"
  SCRIPT_BASE_DIR: "tools/generate_emu_config"
  PACKAGE_BASE_DIR: "tools/generate_emu_config/bin/linux"

jobs:
  build:
    runs-on: ubuntu-22.04

    steps:
    - name: Checkout branch
      uses: actions/checkout@v4
    
### fix folder permissions! not sure why this fails
    # nested subdirs "build/linux/release" cause permission problems
    - name: Give all permissions to repo folder
      shell: bash
      working-directory: ${{ github.workspace }}
      run:  sudo chmod -R 777 "${{ github.workspace }}"

# env
    - name: Install env
      shell: bash
      working-directory: "${{ env.SCRIPT_BASE_DIR }}"
      run: sudo chmod 777 recreate_venv_linux.sh && sudo ./recreate_venv_linux.sh

# build
    - name: Rebuild
      shell: bash
      working-directory: "${{ env.SCRIPT_BASE_DIR }}"
      run: sudo chmod 777 rebuild_linux.sh && ./rebuild_linux.sh

# upload artifact
    - name: Upload build package
      uses: actions/upload-artifact@v4
      with:
        name: "${{ env.ARTIFACT_NAME }}"
        path: "${{ env.PACKAGE_BASE_DIR }}/"
        if-no-files-found: 'error'
        compression-level: 9
        retention-days: 1
