tddschn/install-easygraph
is a Action that builds and installs the easygraph from source, on ubuntu-latest.
See action.yml
benchmark:
runs-on: ubuntu-latest # it's only tested to work on ubuntu-latest
steps:
# install-easygraph will use the the version of the `python` in your path
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: 'Build and install easygraph'
uses: tddschn/install-easygraph@master # or v0.1.1, or any other ref
with:
repository: 'easy-graph/Easy-Graph' # or tddschn/Easy-Graph
ref: 'pybind11' # SHA1, tag, or branch
use-cached-build: 'true' # defaults to true. cached builds won't be used for anything other than 'true'.
install-lxml: 'false' # defaults to false. lxml is an optional dependency that doesn't provide wheel for macOS, installing it on macOS takes several minutes.
install-pytorch: 'false' # whether to install pytorch
With complicated caching logic removed.
See dummy/action.yml
benchmark:
runs-on: ubuntu-latest # it's only tested to work on ubuntu-latest
steps:
# install-easygraph will use the the version of the `python` in your path
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: 'Build and install easygraph'
uses: tddschn/install-easygraph@master # or v0.1.1, or any other ref
with:
repository: 'easy-graph/Easy-Graph' # or tddschn/Easy-Graph
ref: 'pybind11' # SHA1, tag, or branch
install-lxml: 'false' # defaults to false. lxml is an optional dependency that doesn't provide wheel for macOS, installing it on macOS takes several minutes.
install-pytorch: 'false' # whether to install pytorch
install-extra-modules: 'pypi-module-1 pypi-module-2'
Deprecates:
tddschn/install-easygraph
, please usetddschn/install-easygraph/dummy
instead.
Add:
- The
extra-modules-to-install
option.
Warning:
tddschn/install-easygraph@v0.5.0
only works for python>=3.10 on Ubuntu, I'm still investigating the issue.
For use with python <= 3.9, use tddschn/install-easygraph/dummy@v0.5.0
which removed complicated caching logic.
Deprecates:
- Building C++ extension with
boost-python
.
Add:
- The
install-pytorch
,repository
, andref
options. install-pytorch
controls whether to installpytorch
in the installation processrepository
andref
allow users to select other repository (e.g. a fork) and ref other than the tip of themaster
orpybind11
branch.- A new dummy workflow without caching logic:
tddschn/install-easygraph/dummy
Remove:
- The
cpp-binding-framework
,boost-version
options.
Click to expand
Add:
- macOS support when using
pybind11
ascpp-binding-framework
. - The
install-lxml
option.
Tested on ubuntu-latest with the following combination of options (note that python-version
is not an option of this action):
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
cpp-binding-framework: ["pybind11"]
include:
- use-cached-build: 'true'
Tested on ubuntu-latest with the following combination of options (note that python-version
is not an option of this action):
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
cpp-binding-framework: ["pybind11", "boost-python"]
use-cached-build: ["true", "false"]
Click to expand
Fix:
- The checking out this action repository step in v0.3.0
Add:
- Caches built egg directory and dependencies under
site-packages
,
greatly speed up the action to ~23 seconds.
Without caching,
building withpybind11
takes ~90 s, and building withboost-python
takes over 3 minutes. - The
use-cached-build
option to control whether to use the cache.
The caches are identified with the combination of:
- the easygraph commit SHA1 they were built against
- the python version (
sys.version
)
The release was designed to work with easygraph before the pybind11
branch is merged into master (which hasn't happened when this release was created).
Tested on ubuntu-latest with the following combination of options (note that python-version
is not an option of this action):
matrix:
python-version: ["3.7", "3.8", "3.9"]
cpp-binding-framework: ["pybind11", "boost-python"]
use-cached-build: ["true", "false"]
Click to expand
Changes from v0.1.1:
- Remove
easygraph-checkout-path
option
The action will delete the checked out easygraph source code after building and installing. - Add Action branding
The release was designed to work with easygraph before the pybind11
branch is merged into master (which hasn't happened when this release was created).
Click to expand
The v0.1.1 release has been tested and proved to work on these configurations on ubuntu-latest:
python-version: ["3.7", "3.8", "3.9"]
cpp-binding-framework: ["pybind11", "boost-python"]
The release was designed to work with easygraph before the pybind11
branch is merged into master (which hasn't happened when this release was created).