|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +# Set up the Python environment for the action's script to run in |
| 4 | + |
| 5 | +readonly PYTHON_PACKAGE_VERSION='3.8' |
| 6 | + |
| 7 | +# https://stackoverflow.com/a/29835459 |
| 8 | +readonly SCRIPT_PATH="$( |
| 9 | + CDPATH='' \ |
| 10 | + cd -- "$( |
| 11 | + dirname -- "$0" |
| 12 | + )" && ( |
| 13 | + pwd -P |
| 14 | + ) |
| 15 | +)" |
| 16 | + |
| 17 | +readonly PYTHON_COMMAND="python${PYTHON_PACKAGE_VERSION}" |
| 18 | +readonly PYTHON_VENV_PATH="${SCRIPT_PATH}/compilesketches/.venv" |
| 19 | +readonly PYTHON_VENV_ACTIVATE_SCRIPT_PATH="${PYTHON_VENV_PATH}/bin/activate" |
| 20 | + |
| 21 | +# Install Python |
| 22 | +sudo apt-get install --yes software-properties-common > /dev/null |
| 23 | +sudo add-apt-repository --yes ppa:deadsnakes/ppa > /dev/null |
| 24 | +sudo apt-get update --yes > /dev/null |
| 25 | +sudo apt-get install --yes python${PYTHON_PACKAGE_VERSION} > /dev/null |
| 26 | +echo "Using Python version: $("$PYTHON_COMMAND" --version)" |
| 27 | + |
| 28 | +sudo apt-get install --yes python3-setuptools > /dev/null |
| 29 | +sudo apt-get install --yes python${PYTHON_PACKAGE_VERSION}-venv > /dev/null |
| 30 | + |
| 31 | +# Create Python virtual environment |
| 32 | +"$PYTHON_COMMAND" -m venv "$PYTHON_VENV_PATH" |
| 33 | + |
| 34 | +# Activate Python virtual environment |
| 35 | +. "$PYTHON_VENV_ACTIVATE_SCRIPT_PATH" |
| 36 | + |
| 37 | +# Install Python dependencies |
| 38 | +"$PYTHON_COMMAND" -m pip install --upgrade pip > /dev/null |
| 39 | +"$PYTHON_COMMAND" -m pip install --quiet --requirement "${SCRIPT_PATH}/compilesketches/requirements.txt" |
| 40 | + |
| 41 | +# Set outputs for use in GitHub Actions workflow steps |
| 42 | +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-output-parameter |
| 43 | +echo "::set-output name=python-command::$PYTHON_COMMAND" |
| 44 | +echo "::set-output name=python-venv-activate-script-path::$PYTHON_VENV_ACTIVATE_SCRIPT_PATH" |
0 commit comments