--- 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: permissions: {} jobs: upload_nightly_wheels: name: Upload nightly wheels to Anaconda Cloud runs-on: ubuntu-latest defaults: run: # The login shell is necessary for the setup-micromamba setup # to work in subsequent jobs. # https://github.com/mamba-org/setup-micromamba#about-login-shells shell: bash -e -l {0} permissions: actions: read if: github.repository_owner == 'matplotlib' steps: # https://github.com/actions/download-artifact/issues/3#issuecomment-1017141067 - name: Download wheel artifacts from last build on 'main' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | PROJECT_REPO="matplotlib/matplotlib" BRANCH="main" ARTIFACT_PATTERN="cibw-wheels-*" for WORKFLOW_NAME in cibuildwheel.yml wasm.yml; do gh run --repo "${PROJECT_REPO}" \ list --branch "${BRANCH}" \ --workflow "${WORKFLOW_NAME}" \ --json event,status,conclusion,databaseId > runs.json RUN_ID=$( jq --compact-output \ '[ .[] | # Filter on "push" events to main (merged PRs) ... select(.event == "push") | # that have completed successfully ... select(.status == "completed" and .conclusion == "success") ] | # and get ID of latest build of wheels. sort_by(.databaseId) | reverse | .[0].databaseId' runs.json ) gh run --repo "${PROJECT_REPO}" view "${RUN_ID}" gh run --repo "${PROJECT_REPO}" download "${RUN_ID}" --pattern "${ARTIFACT_PATTERN}" done mkdir dist mv ${ARTIFACT_PATTERN}/*.whl dist/ ls -l dist/ - name: Upload wheels to Anaconda Cloud as nightlies uses: scientific-python/upload-nightly-action@e76cfec8a4611fd02808a801b0ff5a7d7c1b2d99 # 0.6.4 with: artifacts_path: dist anaconda_nightly_upload_token: ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }}