Skip to content
This repository has been archived by the owner on Dec 29, 2023. It is now read-only.

Commit

Permalink
fix: install 'build' with pip
Browse files Browse the repository at this point in the history
  • Loading branch information
srevinsaju committed Nov 6, 2021
1 parent f33ab3e commit 5c76999
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
9 changes: 9 additions & 0 deletions .github/workflows/continuous.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,18 @@ jobs:
sudo snap install --classic snapcraft
snapcraft --destructive-mode
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: guiscrcpy-snap
path: 'guiscrcpy_*.snap'


- name: Publish to Snap Store
run: |
echo "${{ secrets.SNAP_DEPLOY_TOKEN }}" > token.txt
mkdir -p ~/.snapcraft
cat token.txt | base64 --decode --ignore-garbage > ~/.snapcraft/snapcraft.cfg
# if: github.ref == 'refs/heads/master'
snapcraft upload --release=edge *.snap
Expand Down
39 changes: 32 additions & 7 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ apps:
command-chain: &command-chain-common
- bin/debian-multiarch-triplet-provider-launch
- bin/classic-launch
- bin/desktop-launch
- bin/guiscrcpy
desktop: share/applications/guiscrcpy.desktop

parts:

Expand All @@ -61,12 +59,39 @@ parts:
after: [classic-launch, debian-multiarch-triplet-provider-launch]
# See 'snapcraft plugins'
build-packages:
- python3-build
- python3-pip
override-build: |
python -m build .
tar -xvf dist/*.tar.gz setup.py
rm -rf dist
snapcraftctl build
python -m venv $SNAPCRAFT_PART_INSTALL
source $SNAPCRAFT_PART_INSTALL/bin/activate
pip install poetry
python -m poetry install -E PySide2 --no-dev
ls -al $SNAPCRAFT_PART_INSTALL
find "${SNAPCRAFT_PART_INSTALL}" -type f -executable -print0 | xargs -0 \
sed -i "1 s|^#\\!${SNAPCRAFT_PYTHON_VENV_INTERP_PATH}.*$|#\\!/usr/bin/env ${SNAPCRAFT_PYTHON_INTERPRETER}|"
determine_link_target() {
opts_state="$(set +o +x | grep xtrace)"
interp_dir="$(dirname "${SNAPCRAFT_PYTHON_VENV_INTERP_PATH}")"
# Determine python based on PATH, then resolve it, e.g:
# (1) /home/ubuntu/.venv/snapcraft/bin/python3 -> /usr/bin/python3.8
# (2) /usr/bin/python3 -> /usr/bin/python3.8
# (3) /root/stage/python3 -> /root/stage/python3.8
# (4) /root/parts/<part>/install/usr/bin/python3 -> /root/parts/<part>/install/usr/bin/python3.8
python_path="$(which "${SNAPCRAFT_PYTHON_INTERPRETER}")"
python_path="$(readlink -e "${python_path}")"
for dir in "${SNAPCRAFT_PART_INSTALL}" "${SNAPCRAFT_STAGE}"; do
if echo "${python_path}" | grep -q "${dir}"; then
python_path="$(realpath --strip --relative-to="${interp_dir}" \\
"${python_path}")"
break
fi
done
echo "${python_path}"
eval "${opts_state}"
}
python_path="$(determine_link_target)"
ln -sf "${python_path}" "${SNAPCRAFT_PYTHON_VENV_INTERP_PATH}"
plugin: python
source: .

Expand Down

0 comments on commit 5c76999

Please sign in to comment.