Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

SLEEF Migration

SLEEF Migration #34

Workflow file for this run

name:Big-Endian Architecture Tests
on:
pull_request:
branches:
-main
paths:
-"quaddtype/**"
-".github/workflows/**"
workflow_dispatch:
defaults:
run:
shell:bash
concurrency:
group:${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress:true
permissions:
contents:read
jobs:
big_endian_tests:
runs-on:ubuntu-24.04
continue-on-error:true
strategy:
fail-fast:false
matrix:
BUILD_PROP:
-[
"s390x (IBM Z Big Endian)",
"s390x-linux-gnu",
"s390x/ubuntu:24.04",
"s390x",
]
-[
"s390x - baseline(Z13)",
"s390x-linux-gnu",
"s390x/ubuntu:24.04",
"s390x",
]
env:
ARCH_NAME:${{ matrix.BUILD_PROP[0] }}
TOOLCHAIN_NAME:${{ matrix.BUILD_PROP[1] }}
DOCKER_CONTAINER:${{ matrix.BUILD_PROP[2] }}
ARCH:${{ matrix.BUILD_PROP[3] }}
TERM:xterm-256color
name:"${{ matrix.BUILD_PROP[0] }}"
steps:
-uses:actions/checkout@v6
with:
submodules:recursive
fetch-tags:true
persist-credentials:false
-name:Initialize binfmt_misc for qemu-user-static
run:|
# Enable QEMU user-mode emulation for cross-architecture execution
docker run --rm --privileged tonistiigi/binfmt:qemu-v9.2.2-52 --install all
-name:Install cross-compilation toolchain
run:|
sudo apt update
sudo apt install -y ninja-build gcc-${TOOLCHAIN_NAME} g++-${TOOLCHAIN_NAME} gfortran-${TOOLCHAIN_NAME}
-name:Cache docker container
uses:actions/cache@v4
id:container-cache
with:
path:~/docker_${{ matrix.BUILD_PROP[1] }}
key:container-quaddtype-${{ runner.os }}-${{ matrix.BUILD_PROP[1] }}-${{ matrix.BUILD_PROP[2] }}-${{ hashFiles('quaddtype/pyproject.toml') }}
-name:Create cross-compilation container
if:steps.container-cache.outputs.cache-hit != 'true'
run:|
docker run --platform=linux/${ARCH} --name quaddtype_container --interactive \
-v /:/host -v $(pwd):/workspace ${DOCKER_CONTAINER} /bin/bash -c "
# Update package manager and install essential tools
apt update &&
apt install -y cmake git python3 python-is-python3 python3-dev python3-pip build-essential &&
# Create necessary symlinks for cross-compilation
mkdir -p /lib64 && ln -sf /host/lib64/ld-* /lib64/ || true &&
ln -sf /host/lib/x86_64-linux-gnu /lib/x86_64-linux-gnu || true &&
# Link cross-compilation toolchain from host
rm -rf /usr/${TOOLCHAIN_NAME} && ln -sf /host/usr/${TOOLCHAIN_NAME} /usr/${TOOLCHAIN_NAME} &&
rm -rf /usr/lib/gcc/${TOOLCHAIN_NAME} && ln -sf /host/usr/lib/gcc-cross/${TOOLCHAIN_NAME} /usr/lib/gcc/${TOOLCHAIN_NAME} &&
# Set up compiler symlinks
rm -f /usr/bin/gcc && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-gcc /usr/bin/gcc &&
rm -f /usr/bin/g++ && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-g++ /usr/bin/g++ &&
rm -f /usr/bin/gfortran && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-gfortran /usr/bin/gfortran &&
# Set up binutils
rm -f /usr/bin/ar && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-ar /usr/bin/ar &&
rm -f /usr/bin/as && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-as /usr/bin/as &&
rm -f /usr/bin/ld && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-ld /usr/bin/ld &&
rm -f /usr/bin/ld.bfd && ln -sf /host/usr/bin/${TOOLCHAIN_NAME}-ld.bfd /usr/bin/ld.bfd &&
# Link build tools
rm -f /usr/bin/ninja && ln -sf /host/usr/bin/ninja /usr/bin/ninja &&
rm -f /usr/local/bin/ninja && mkdir -p /usr/local/bin && ln -sf /host/usr/bin/ninja /usr/local/bin/ninja &&
# Configure git for workspace access
git config --global --add safe.directory /workspace &&
# Install Python build dependencies (using --break-system-packages for Ubuntu 24.04)
python -m pip install --break-system-packages meson>=1.3.2 meson-python wheel ninja cython &&
echo \"Building NumPy from source (main branch)...\" &&
python -m pip install --break-system-packages git+https://github.com/numpy/numpy.git@main &&
python -c \"import numpy; print('NumPy version:', numpy.__version__)\" &&
python -m pip install --break-system-packages pytest pytest-run-parallel pytest-timeout &&
# Install system dependencies for quaddtype (SLEEF dependencies)
apt install -y libssl-dev libfftw3-dev pkg-config
"
docker commit quaddtype_container quaddtype_container
mkdir -p "~/docker_${TOOLCHAIN_NAME}"
docker save -o "~/docker_${TOOLCHAIN_NAME}/quaddtype_container.tar" quaddtype_container
-name:Load container from cache
if:steps.container-cache.outputs.cache-hit == 'true'
run:docker load -i "~/docker_${TOOLCHAIN_NAME}/quaddtype_container.tar"
-name:Build quaddtype with cross-compilation and testing
run:|
docker run --rm --platform=linux/${ARCH} -e "TERM=xterm-256color" \
-v $(pwd):/workspace -v /:/host quaddtype_container \
/bin/script -e -q -c "/bin/bash --noprofile --norc -eo pipefail -c '
cd /workspace/quaddtype &&
echo \"Building quaddtype for ${ARCH_NAME}...\" &&
# Set OpenMP linking for cross-compilation
export LDFLAGS=\"-fopenmp\" &&
# Install quaddtype without dependencies (NumPy already installed from source)
python -m pip install --break-system-packages --no-deps . -v --no-build-isolation --force-reinstall &&
# Install test dependencies separately
python -m pip install --break-system-packages pytest pytest-run-parallel pytest-timeout mpmath &&
cd ..
python -m pytest -vvv --color=yes --timeout=600 --tb=short quaddtype/tests/
'"

[8]ページ先頭

©2009-2025 Movatter.jp