Skip to content

Upload nightly wheels to Anaconda Cloud #868

Upload nightly wheels to Anaconda Cloud

Upload nightly wheels to Anaconda Cloud #868

Workflow file for this run

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@be1e14936a8e947da94d026c990715f0596d7043
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 \
--skip-existing \
dist/matplotlib-*.whl