Skip to content

Begin using Mac runners #15

Begin using Mac runners

Begin using Mac runners #15

Workflow file for this run

name: Test MacOS
on:
push:
branches:
- master
pull_request:
# By default this workflow is run on the "opened", "synchronize" and
# "reopened" events. We add "labelled" so it will run if the PR is given a label.
types: [opened, synchronize, reopened, labeled]
concurrency:
# Cancels jobs running if new commits are pushed
group: >
${{ github.workflow }}-
${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build Firedrake
runs-on: [self-hosted, macOS]
# Only run this action if we are pushing to master or the PR is labelled "macOS"
if: ${{ (github.ref == 'refs/heads/master') || contains(github.event.pull_request.labels.*.name, 'macOS') }}
env:
FIREDRAKE_CI_TESTS: 1 # needed to symlink the checked out branch into the venv
OMP_NUM_THREADS: 1
OPENBLAS_NUM_THREADS: 1
steps:
- uses: actions/checkout@v4
- name: Pre-run cleanup
if: ${{ always() }}
run: |
cd ..
rm -rf firedrake_venv
- name: Install Python
run: brew install [email protected] python-setuptools
- name: Build Firedrake
run: |
cd ..
"$(brew --prefix)/bin/python3.12" \
firedrake/scripts/firedrake-install \
--venv-name firedrake_venv \
--disable-ssh \
|| (cat firedrake-install.log && /bin/false)
- name: Run smoke tests
run: |
. ../firedrake_venv/bin/activate
python -m pytest -v tests/regression/ \
-k "poisson_strong or stokes_mini or dg_advection" -m "not parallel"
- name: Run parallel smoke tests # ideally in the same step as above
run: |
. ../firedrake_venv/bin/activate
mpiexec -n 3 python -m pytest -v tests/regression/ \
-k "poisson_strong or stokes_mini or dg_advection" -m "parallel[3]"
timeout-minutes: 30
- name: Post-run cleanup
if: ${{ always() }}
run: |
cd ..
rm -rf firedrake_venv