Upload nightly wheels to Anaconda Cloud #950
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: 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 |