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 KeplerGL Python and NPM Packages | |
on: push | |
jobs: | |
build_and_publish: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" | |
steps: | |
- uses: actions/checkout@v4 | |
# use Volta to manage yarn/node versions | |
- uses: volta-cli/action@v4 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install twine virtualenv | |
- name: Build KeplerGL | |
env: | |
MapboxAccessTokenJupyter: ${{ secrets.mapbox_jupyter_token }} | |
NODE_OPTIONS: --openssl-legacy-provider | |
run: | | |
python -m virtualenv venv | |
source venv/bin/activate | |
pip install jupyter jupyterlab jupyter-packaging | |
cd bindings/kepler.gl-jupyter | |
python setup.py sdist | |
- name: Test KeplerGL | |
run: | | |
source venv/bin/activate | |
pip install bindings/kepler.gl-jupyter/dist/*.tar.gz | |
if [ ! -f "venv/share/jupyter/nbextensions/keplergl-jupyter/index.js" ]; then | |
venv/bin/jupyter nbextension install --py --sys-prefix keplergl | |
venv/bin/jupyter nbextension enable --py --sys-prefix keplergl | |
fi | |
venv/bin/jupyter nbconvert --execute bindings/kepler.gl-jupyter/notebooks/DataFrame.ipynb --to python | |
python bindings/kepler.gl-jupyter/notebooks/DataFrame.py | |
- name: Create artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: keplergl-pypi | |
path: bindings/kepler.gl-jupyter/dist/ | |
- name: Check Release Tag | |
id: check-tag | |
run: | | |
if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+-jupyter$ ]]; then | |
echo ::set-output name=publish::true | |
fi | |
- name: Publish KeplerGL to Pypi | |
if: steps.check-tag.outputs.publish == 'true' | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.pypi_token }} | |
run: | | |
python -m twine upload bindings/kepler.gl-jupyter/dist/*.tar.gz | |
- name: Publish kepler-jupyter to NPM | |
if: steps.check-tag.outputs.publish == 'true' | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.npm_token}} | |
MapboxAccessTokenJupyter: ${{ secrets.mapbox_jupyter_token }} | |
run: | | |
source venv/bin/activate | |
cd bindings/kepler.gl-jupyter/js | |
npm publish |