Update api hint on click in addition to mouse over #16452
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - 'v*' | |
| tags: | |
| - 'v*' | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Github Actions supports ubuntu, windows, and macos virtual environments: | |
| # https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners | |
| ci_tests: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| continue-on-error: ${{ matrix.allow_failure || contains(github.event.pull_request.labels.*.name, 'continue-on-error') }} | |
| strategy: | |
| matrix: | |
| include: | |
| - name: Code style checks | |
| os: ubuntu-latest | |
| python: 3.x | |
| toxenv: codestyle | |
| allow_failure: false | |
| - name: PEP 517 | |
| os: ubuntu-latest | |
| python: 3.x | |
| toxenv: pep517 | |
| allow_failure: false | |
| - name: Security audit | |
| os: ubuntu-latest | |
| python: 3.x | |
| toxenv: securityaudit | |
| allow_failure: false | |
| - name: Python 3.11 with coverage checking and all deps | |
| os: ubuntu-latest | |
| python: '3.11' | |
| toxenv: py311-test-alldeps-cov | |
| toxposargs: --run-slow | |
| allow_failure: false | |
| - name: Python 3.11 with only remote data and all deps | |
| os: ubuntu-latest | |
| python: '3.11' | |
| toxenv: py311-test-alldeps | |
| toxposargs: --remote-data --run-slow -m remote_data | |
| allow_failure: true | |
| - name: OS X - Python 3.12 | |
| os: macos-latest | |
| python: '3.12' | |
| toxenv: py312-test | |
| allow_failure: false | |
| - name: Windows - Python 3.12 | |
| os: windows-latest | |
| python: '3.12' | |
| toxenv: py312-test | |
| allow_failure: false | |
| - name: Linux - Python 3.13 | |
| os: ubuntu-latest | |
| python: '3.13' | |
| toxenv: py313-test | |
| allow_failure: false | |
| # This also runs on cron but we want to make sure new changes | |
| # won't break this job at the PR stage. | |
| - name: Python 3.13 with latest dev versions of key dependencies | |
| os: ubuntu-latest | |
| python: '3.13' | |
| toxenv: py313-test-devdeps | |
| toxposargs: --run-slow | |
| allow_failure: true | |
| - name: Python 3.13 with only remote data and dev deps | |
| os: ubuntu-latest | |
| python: '3.13' | |
| toxenv: py313-test-devdeps | |
| toxposargs: --remote-data --run-slow -m remote_data | |
| allow_failure: true | |
| - name: Python 3.11 with stable versions of dependencies and Roman | |
| os: ubuntu-latest | |
| python: '3.11' | |
| toxenv: py311-test-romandeps | |
| allow_failure: true | |
| steps: | |
| - name: Build toxposargs from labels | |
| id: build-toxposargs | |
| shell: bash | |
| env: | |
| LABELS: ${{ toJSON(github.event.pull_request.labels.*.name) }} | |
| run: | | |
| toxposargs="${{ matrix.toxposargs }}" | |
| # Add --skip-remote-failures if 'skip-remote-failures' label is present | |
| if echo "$LABELS" | grep -q 'skip-remote-failures'; then | |
| toxposargs="$toxposargs --skip-remote-failures" | |
| fi | |
| # Export as step output so later steps can reference it. | |
| echo "toxposargs=$toxposargs" >> $GITHUB_OUTPUT | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up python ${{ matrix.python }} on ${{ matrix.os }} | |
| uses: actions/setup-python@cfd55ca82492758d853442341ad4d8010466803a # v5.6.0 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Install base dependencies | |
| run: python -m pip install --upgrade pip tox | |
| - name: Install extra dependencies for strauss | |
| if: "contains(matrix.toxenv, 'alldeps')" | |
| run: sudo apt-get install libportaudio2 | |
| - name: Get IP address for MAST debugging | |
| if: "contains(matrix.toxposargs, '--remote-data')" | |
| run: curl https://api.ipify.org | |
| - name: Get components for cache key | |
| id: date | |
| if: "contains(matrix.toxposargs, '--remote-data')" | |
| shell: bash | |
| run: | | |
| echo "year=$(date +'%Y')" >> $GITHUB_OUTPUT | |
| echo "week=$(date +'%V')" >> $GITHUB_OUTPUT | |
| echo "day=$(date +'%j')" >> $GITHUB_OUTPUT | |
| - name: Restore MAST cache | |
| if: "contains(matrix.toxposargs, '--remote-data')" | |
| id: cache-restore | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ./ | |
| key: use-restore-keys-below-to-match-in-priority-order | |
| restore-keys: | | |
| mast-cache-${{ steps.date.outputs.year }}-${{ steps.date.outputs.week }}-${{ steps.date.outputs.day }}- | |
| mast-cache-${{ steps.date.outputs.year }}-${{ steps.date.outputs.week }}- | |
| mast-cache-${{ steps.date.outputs.year }}- | |
| mast-cache- | |
| - name: Move cache to tox working directory | |
| if: "contains(matrix.toxposargs, '--remote-data')" | |
| shell: bash | |
| run: | | |
| # Create cache directories for all possible tox environments | |
| # tox runs from .tmp/{envname}, so we need to place cache files there | |
| mkdir -p ".tmp/${{ matrix.toxenv }}" | |
| # Check if any fits files exist and move them to the tox working directory | |
| if ls ./*.fits 1> /dev/null 2>&1; then | |
| mv ./*.fits ".tmp/${{ matrix.toxenv }}/" | |
| echo "Cache files moved to .tmp/${{ matrix.toxenv }}/" | |
| echo "Files in tox working directory:" | |
| ls -la ".tmp/${{ matrix.toxenv }}/"*.fits | |
| else | |
| echo "No .fits files found in cache - tests will download files as needed" | |
| fi | |
| - name: Test/run with tox | |
| run: tox -e ${{ matrix.toxenv }} -- ${{ steps.build-toxposargs.outputs.toxposargs }} | |
| - name: Upload coverage to artifacts | |
| if: "contains(matrix.toxenv, '-cov')" | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: coverage_${{ matrix.toxenv }}.xml | |
| path: coverage.xml | |
| if-no-files-found: error | |
| upload-codecov: | |
| needs: [ ci_tests ] | |
| permissions: | |
| contents: none | |
| runs-on: ubuntu-latest | |
| name: Upload Coverage | |
| steps: | |
| # work around CodeCov upload issue | |
| # see: https://github.com/codecov/codecov-action/issues/1801 | |
| - uses: actions/checkout@v6.0.2 | |
| - name: Download coverage artifacts | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| path: coverage | |
| pattern: coverage_* | |
| merge-multiple: true | |
| - name: Upload report to Codecov | |
| if: ${{ hashFiles('coverage/') != '' }} | |
| uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: coverage | |
| fail_ci_if_error: true | |
| verbose: true |