name: Build Package ARM64 (Reusable) on: workflow_call: inputs: build_flags: description: 'Flags to pass to build.sh (e.g., "--build appimage --clean no")' required: false type: string default: '' # Default is no extra flags artifact_suffix: description: 'Suffix for the artifact name (e.g., deb, appimage)' required: true type: string jobs: build: # Use an ARM runner runs-on: ubuntu-22.04-arm # Or your self-hosted ARM runner label steps: # Checkout code is needed within the reusable workflow itself - name: Checkout repository uses: actions/checkout@v4 - name: Install FUSE for AppImageTool run: | sudo apt-get update sudo apt-get install -y libfuse2 - name: Make build script executable run: chmod +x ./build.sh - name: Run build script run: | echo "Running ARM64 build with flags: ${{ inputs.build_flags }}" # No sudo needed if runner user has permissions or build.sh handles it internally ./build.sh ${{ inputs.build_flags }} # Upload the built artifact for the release job - name: Upload ARM64 Artifact uses: actions/upload-artifact@v4 with: name: package-arm64-${{ inputs.artifact_suffix }} # Unique name using suffix path: | # Adjust path based on expected output claude-desktop_*.deb claude-desktop-*.AppImage claude-desktop-*.AppImage.zsync if-no-files-found: error # Fail if build didn't produce output