Skip to content

Weekly cron

Weekly cron #89

name: Weekly cron
on:
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' || 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.11 with dev version of key dependencies
os: ubuntu-latest
python: '3.11'
toxenv: py311-test-devdeps
- name: Python 3.11 with dev version of infrastructure dependencies
os: ubuntu-latest
python: '3.11'
toxenv: py311-test-devinfra
- name: Documentation link check
os: ubuntu-latest
python: '3.10'
toxenv: linkcheck
- name: Run flynt to check string formatting
os: ubuntu-latest
python: '3.10'
toxenv: flynt
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
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-20.04
name: Python 3.11
if: (github.repository == 'astropy/astropy' && (github.event_name == 'schedule' || github.event_name == 'push' || 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 git \
g++ \
pkg-config \
python3 \
python3-configobj \
python3-numpy \
python3-ply \
python3-venv \
cython3 \
wcslib-dev \
liberfa1
run: |
uname -a
echo "LONG_BIT="$(getconf LONG_BIT)
python3 -m venv --system-site-packages tests
source tests/bin/activate
ASTROPY_USE_SYSTEM_ALL=1 pip3 install -e .[test]
pip3 list
python3 -m pytest