diff --git a/.github/workflows/nightlies.yml b/.github/workflows/nightlies.yml new file mode 100644 index 000000000000..438fe26cb1ce --- /dev/null +++ b/.github/workflows/nightlies.yml @@ -0,0 +1,64 @@ +name: Upload nightly wheels to Anaconda Cloud + +on: + # Run daily at 1:23 UTC to upload nightly wheels to Anaconda Cloud + schedule: + - cron: '23 1 * * *' + # Run on demand with workflow dispatch + workflow_dispatch: + +jobs: + upload_nightly_wheels: + name: Upload nightly wheels to Anaconda Cloud + runs-on: ubuntu-latest + if: github.repository_owner == 'matplotlib' + + steps: + - name: Install Python + uses: actions/setup-python@v3 + with: + python-version: '3.x' + + # c.f. https://github.com/actions/download-artifact/issues/3#issuecomment-1017141067 + - name: Download wheel artifacts from last build on 'main' + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PROJECT_REPO="matplotlib/matplotlib" + BRANCH="main" + WORKFLOW_NAME="cibuildwheel.yml" + ARTIFACT_NAME="wheels" + + gh run --repo "${PROJECT_REPO}" \ + list --branch "${BRANCH}" \ + --workflow "${WORKFLOW_NAME}" \ + --json event,status,databaseId > runs.json + # Filter on 'push' events to main (merged PRs) that have completed + jq --compact-output \ + '[ .[] | select(.event == "push") | select(.status == "completed") ]' \ + runs.json > pushes.json + # Get id of latest build of wheels + RUN_ID=$( + jq --compact-output \ + 'sort_by(.databaseId) | reverse | .[0].databaseId' pushes.json + ) + gh run --repo "${PROJECT_REPO}" \ + download "${RUN_ID}" --name "${ARTIFACT_NAME}" + + mkdir dist + mv *.whl dist/ + ls -l dist/ + + - name: Install anaconda-client + run: | + python -m pip install --upgrade pip setuptools wheel + # c.f. https://github.com/Anaconda-Platform/anaconda-client/issues/540 + python -m pip install git+https://github.com/Anaconda-Server/anaconda-client + python -m pip list + + - name: Upload wheels to Anaconda Cloud as nightlies + run: | + anaconda --token ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }} upload \ + --user scipy-wheels-nightly \ + dist/matplotlib-*.whl diff --git a/doc/users/installing/index.rst b/doc/users/installing/index.rst index 10431d0cd465..a2ce7cea6790 100644 --- a/doc/users/installing/index.rst +++ b/doc/users/installing/index.rst @@ -80,6 +80,20 @@ you can install Matplotlib via your package manager, e.g.: .. _install_from_source: +========================== +Installing a nightly build +========================== + +Matplotlib makes nightly development build wheels available on the +`scipy-wheels-nightly Anaconda Cloud organization +`_. +These wheels can be installed with ``pip`` by specifying scipy-wheels-nightly +as the package index to query: + +.. code-block:: sh + + python -m pip install --upgrade --index-url https://pypi.anaconda.org/scipy-wheels-nightly/simple matplotlib + ====================== Installing from source ====================== pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy