Weekly cron #15
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: Weekly cron | |
on: | |
workflow_dispatch: | |
schedule: | |
# run every Monday at 6am UTC | |
- cron: '0 6 * * 1' | |
pull_request: | |
# We also want this workflow triggered if the 'Extra CI' label is added | |
# or present when PR is updated | |
types: | |
- synchronize | |
- labeled | |
push: | |
# We want this workflow to always run on release branches as well as | |
# all tags since we want to be really sure we don't introduce | |
# regressions on the release branches, and it's also important to run | |
# this on pre-release and release tags. | |
branches: | |
- 'v*' | |
tags: | |
- '*' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
IS_CRON: 'true' | |
jobs: | |
tests: | |
runs-on: ${{ matrix.os }} | |
if: (github.repository == 'astropy/astropy' && (github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Extra CI'))) | |
env: | |
ARCH_ON_CI: "normal" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# We check numpy-dev also in a job that only runs from cron, so that | |
# we can spot issues sooner. We do not use remote data here, since | |
# that gives too many false positives due to URL timeouts. We also | |
# install all dependencies via pip here so we pick up the latest | |
# releases. | |
- name: Python 3.10 with dev version of key dependencies | |
os: ubuntu-latest | |
python: '3.10' | |
toxenv: py310-test-devdeps | |
# https://github.com/astropy/astropy/issues/15701 | |
- name: Python 3.11 with dev version of key dependencies without scipy | |
os: ubuntu-latest | |
python: '3.11' | |
toxenv: py311-test-devdeps-noscipy | |
- name: Python 3.12 with dev version of infrastructure dependencies | |
os: ubuntu-latest | |
python: '3.12' | |
toxenv: py312-test-devinfra | |
- name: Python 3.12 on macOS (x86_64) with all optional dependencies | |
os: macos-13 | |
python: '3.12' | |
toxenv: py312-test-alldeps | |
- name: Documentation link check | |
os: ubuntu-latest | |
python: '3.x' | |
toxenv: linkcheck | |
toxposargs: --color | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install language-pack-de and tzdata | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install language-pack-de tzdata | |
- name: Install graphviz | |
if: ${{ matrix.toxenv == 'linkcheck' }} | |
run: sudo apt-get install graphviz | |
- name: Install Python dependencies | |
run: python -m pip install --upgrade tox | |
- name: Run tests | |
run: tox ${{ matrix.toxargs}} -e ${{ matrix.toxenv}} -- ${{ matrix.toxposargs}} | |
tests_more_architectures: | |
# The following architectures are emulated and are therefore slow, so | |
# we include them just in the weekly cron. These also serve as a test | |
# of using system libraries and using pytest directly. | |
runs-on: ubuntu-latest | |
name: Python 3.12 | |
if: (github.repository == 'astropy/astropy' && (github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Extra CI'))) | |
env: | |
ARCH_ON_CI: ${{ matrix.arch }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch: aarch64 | |
- arch: s390x | |
- arch: ppc64le | |
- arch: armv7 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Run tests | |
id: build | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ubuntu_rolling | |
shell: /bin/bash | |
env: | | |
ARCH_ON_CI: ${{ env.ARCH_ON_CI }} | |
IS_CRON: ${{ env.IS_CRON }} | |
install: | | |
apt-get update -q -y | |
apt-get install -q -y gnupg2 | |
# Add test-support repository for wcslib8 | |
echo "deb http://ppa.launchpadcontent.net/astropy/test-support/ubuntu lunar main" > /etc/apt/sources.list.d/test-support.list | |
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv CC75F07B3EF41EFC | |
gpg --export --armor CC75F07B3EF41EFC | tee /etc/apt/trusted.gpg.d/test-support.asc | |
apt-get update -q -y | |
apt-get install -q -y --no-install-recommends \ | |
git \ | |
g++ \ | |
pkg-config \ | |
python3 \ | |
python3-erfa \ | |
python3-extension-helpers \ | |
python3-jinja2 \ | |
python3-numpy \ | |
python3-pytest-astropy \ | |
python3-setuptools-scm \ | |
python3-yaml \ | |
python3-venv \ | |
python3-wheel \ | |
wcslib-dev | |
run: | | |
uname -a | |
echo "LONG_BIT="$(getconf LONG_BIT) | |
python3 -m venv --system-site-packages tests | |
source tests/bin/activate | |
# cython and pyerfa versions in ubuntu repos are too old currently | |
pip install -U cython | |
pip install -U --no-build-isolation pyerfa | |
ASTROPY_USE_SYSTEM_ALL=1 pip3 install -v --no-build-isolation -e .[test] | |
pip3 list | |
python3 -m pytest -m "not hypothesis" |