publish arm64 #39
Workflow file for this run
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 | |
on: [push] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: prep | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install pyinstaller==6.3.0 | |
rm -rf build dist | |
- name: build | |
shell: bash | |
run: | | |
echo "RUNNER_OS: $RUNNER_OS" | |
pyinstaller rsyncy.py --onefile --name rsyncy --console | |
cat build/rsyncy/warn-rsyncy.txt | |
cd dist; ls -l | |
if [ "$RUNNER_OS" == "Linux" ]; then | |
tar -czf rsyncy-linux_amd64.tar.gz rsyncy | |
elif [ "$RUNNER_OS" == "macOS" ]; then | |
tar -czf rsyncy-macos_amd64.tar.gz rsyncy | |
else | |
echo 'unknown runner' | |
exit 1 | |
fi | |
- name: artifact | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'Linux' | |
with: | |
name: binary-${{ matrix.os }} | |
path: dist/rsyncy*.tar.gz | |
- name: artifact | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'macOS' | |
with: | |
name: binary-${{ matrix.os }} | |
path: dist/rsyncy*.tar.gz | |
build_arm: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pguyot/arm-runner-action@v2 | |
with: | |
base_image: raspios_lite_arm64:latest | |
image_additional_mb: 2048 | |
bind_mount_repository: true | |
commands: | | |
# install python 3.12 | |
# apt update && apt upgrade -y && apt -qq install -y build-essential zlib1g-dev uuid-dev liblzma-dev lzma-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev | |
# mkdir -p /pybuild | |
# cd /pybuild | |
# wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz | |
# tar -xf Python-3.12.0.tgz | |
# cd Python-3.12.0 | |
# ./configure --enable-optimizations --enable-shared < /dev/null | |
# make -j $(nproc) < /dev/null | |
# make altinstall -j $(nproc) < /dev/null | |
# rm -rf /usr/bin/python | |
# ls -l /usr/local/bin/ | |
# ln -s /usr/local/bin/python3.12 /usr/bin/python | |
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.12 | |
# export PYTHONPATH=/usr/local/lib/python3.12 | |
# python -m pip install --upgrade pip | |
# python -m pip install pyinstaller==6.3.0 | |
# pip for python 3.11 | |
apt update && apt -qq install -y python3 python3-pip | |
python -m pip install pyinstaller==6.3.0 --break-system-packages | |
python -V | |
cd /rsyncy | |
rm -rf build dist | |
pyinstaller rsyncy.py --onefile --name rsyncy --console | |
cat build/rsyncy/warn-rsyncy.txt | |
find | |
cd dist; pwd; ls -l | |
tar -czf rsyncy-linux_arm64.tar.gz rsyncy | |
- name: artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: binary-linux-arm | |
path: dist/rsyncy*.tar.gz | |
publish: | |
runs-on: ubuntu-latest | |
needs: [build, build_arm] | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
steps: | |
- name: get-artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: dist | |
merge-multiple: true | |
- name: list | |
shell: bash | |
run: | | |
find | |
ls -l dist | |
- name: publish-release | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
files: dist/* | |