Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/linux-ppc64le.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Native ppc64le Linux Test

on:
pull_request:
branches:
- main
- maintenance/**
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
native_ppc64le:
# This job runs only in the main NumPy repository.
# It requires a native ppc64le GHA runner, which is not available on forks.
# For more details, see: https://github.com/numpy/numpy/issues/29125
if: github.repository == 'numpy/numpy'
runs-on: ubuntu-24.04-ppc64le

name: "Native PPC64LE"
steps:

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: can you remove this blank line?

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
fetch-tags: true
persist-credentials: false

- name: Install dependencies
run: |
sudo apt update
sudo apt install -y python3 python3-pip python3-dev ninja-build gfortran \
build-essential libopenblas-dev liblapack-dev pkg-config
pip install --upgrade pip
pip install -r requirements/build_requirements.txt
pip install pytest pytest-xdist hypothesis typing_extensions pytest-timeout spin
echo "/home/runner/.local/bin" >> $GITHUB_PATH
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this needed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

used to add ~/.local/bin to the system PATH for subsequent steps in the GitHub Actions workflow, so that installed tools (like spin) can be found and executed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah okay. That should be happening only if pip can't write to its default location and switches to .local. The usual solution to that is to use a virtual environment.

Fine to leave this as is until the self-hosted runner is up, so we have a log to look at for the final tweaks.


- name: Meson Build
run: |
spin build --clean -- -Dallow-noblas=false
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remove --clean? It's unnecessary in CI, the build and build-install directories will not exist for a clean checkout.


- name: Meson Log
if: always()
run: cat build/meson-logs/meson-log.txt

- name: Run Tests
run: |
export F90=$(which gfortran)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't doing anything, please remove.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated as suggested, thanks!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unresolved this comment, since it wasn't actually addressed.

spin test -- --timeout=60 --durations=10
Loading