Skip to content

Build Executables

Build Executables #6

name: Build Executables
on:
release:
types: [published]
jobs:
build:
runs-on: ${{ matrix.os }}
permissions:
contents: write
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
include:
- os: ubuntu-latest
dist_name: dist_linux
executable_name: aggie_report
- os: windows-latest
dist_name: dist_win
executable_name: aggie_report.exe
- os: macos-latest
dist_name: dist_mac
executable_name: aggie_report
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.12
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller openpyxl tabulate
- name: Build executable
run: |
cd ${{ github.workspace }}
pyinstaller --onefile aggie_unterprise/aggie_report.py --distpath ${{ matrix.dist_name }}
- name: List directory contents (for debugging)
run: |
ls -lR ${{ matrix.dist_name }}
- name: Rename executable if necessary
run: |
if [ -f "${{ matrix.dist_name }}/${{ matrix.executable_name }}" ]; then
mv "${{ matrix.dist_name }}/${{ matrix.executable_name }}" "${{ matrix.dist_name }}/aggie-report${{ runner.os == 'Windows' && '.exe' || '' }}"
fi
ls -l ${{ matrix.dist_name }}
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ github.workspace }}/${{ matrix.dist_name }}/aggie-report${{ runner.os == 'Windows' && '.exe' || '' }}
asset_name: aggie-report-${{ matrix.dist_name }}${{ runner.os == 'Windows' && '.exe' || '' }}
asset_content_type: application/octet-stream
- name: Upload Artifact (for debugging)
uses: actions/upload-artifact@v2
with:
name: aggie-report-${{ matrix.dist_name }}
path: ${{ github.workspace }}/${{ matrix.dist_name }}
- name: Debug Info
if: failure()
run: |
echo "Current directory:"
pwd
echo "Directory contents:"
ls -lR
echo "Environment variables:"
env