Update main.yml #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build epo.exe for multiple platforms | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pyinstaller | |
pip install -r requirements.txt | |
- name: Build epo.exe on Windows | |
run: | | |
pyinstaller --onefile --name epo.exe epo.py | |
- name: Check output files | |
run: | | |
Get-ChildItem -Path dist/ | |
shell: pwsh | |
- name: Upload epo.exe as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: epo-executable-windows | |
path: dist/epo.exe | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y python3-dev python3-pip | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' # Wybierz starszą wersję Pythona dla lepszej kompatybilności | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pyinstaller | |
pip install -r requirements.txt | |
- name: Build executable on Linux | |
run: | | |
pyinstaller --onefile --name epo-linux epo.py | |
- name: Upload epo executable as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: epo-executable-linux | |
path: dist/epo-linux | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pyinstaller | |
pip install -r requirements.txt | |
- name: Build executable on macOS | |
run: | | |
pyinstaller --onefile --name epo-macos epo.py | |
- name: Check output files | |
run: | | |
ls -al dist/ | |
- name: Upload epo-macos as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: epo-executable-macos | |
path: dist/epo-macos | |
commit-and-push: | |
needs: [build-windows, build-linux, build-macos] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: dist/ | |
- name: Move artifacts to correct locations | |
run: | | |
mv dist/epo-executable-windows/epo.exe dist/ | |
mv dist/epo-executable-linux/epo-linux dist/ | |
mv dist/epo-executable-macos/epo-macos dist/ | |
rm -rf dist/epo-executable-windows dist/epo-executable-linux dist/epo-executable-macos | |
- name: Show downloaded files | |
run: | | |
ls -al dist/ | |
- name: Set up Git for commit | |
run: | | |
git config --global user.name "github-actions" | |
git config --global user.email "[email protected]" | |
- name: Add and commit all built executables | |
run: | | |
git add dist/* || echo "No files to add" | |
git diff --cached --quiet || git commit -m "Add built executables for Windows, Linux, and macOS" | |
- name: Push built executables to repository | |
run: | | |
git pull --rebase | |
git push https://github.com/${{ github.repository }}.git HEAD:main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |