Skip to content

tests.yml

tests.yml #613

Workflow file for this run

on:
push:
branches:
- main
- develop
pull_request:
jobs:
tests:
name: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.version }}-python-${{ matrix.python-version }}-castxml-epic-${{ matrix.castxml-epic }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-22.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-x86_64.tar.gz"
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.11"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-22.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-x86_64.tar.gz"
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 1
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-22.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-x86_64.tar.gz"
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 1
cppstd: "-std=c++11"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-22.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-x86_64.tar.gz"
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_filename: "castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-arm-aarch64.tar.gz"
container:
image: arm64v8/ubuntu:22.04
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.11"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_filename: "castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-arm-aarch64.tar.gz"
container:
image: arm64v8/ubuntu:22.04
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 1
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_filename: "castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-arm-aarch64.tar.gz"
container:
image: arm64v8/ubuntu:22.04
- os: ubuntu-22.04
compiler: gcc
version: "11"
python-version: "3.10"
castxml-epic: 1
cppstd: "-std=c++11"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_filename: "castxml-ubuntu-22.04-arm-aarch64.zip"
castxml_tar_filename: "castxml-ubuntu-22.04-arm-aarch64.tar.gz"
container:
image: arm64v8/ubuntu:22.04
- os: ubuntu-24.04
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-24.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-24.04-x86_64.tar.gz"
- os: ubuntu-24.04
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 1
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-24.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-24.04-x86_64.tar.gz"
- os: ubuntu-24.04
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 1
cppstd: "-std=c++11"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-x86_64.zip"
castxml_filename: "castxml-ubuntu-24.04-x86_64.zip"
castxml_tar_filename: "castxml-ubuntu-24.04-x86_64.tar.gz"
- os: ubuntu-24.04 # Use standard ubuntu-24.04 runner
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected URL
castxml_filename: "castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected filename
castxml_tar_filename: "castxml-ubuntu-24.04-arm-aarch64.tar.gz" # Corrected tar filename
container:
image: arm64v8/ubuntu:24.04
- os: ubuntu-24.04 # Use standard ubuntu-24.04 runner
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 1
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected URL
castxml_filename: "castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected filename
castxml_tar_filename: "castxml-ubuntu-24.04-arm-aarch64.tar.gz" # Corrected tar filename
container:
image: arm64v8/ubuntu:24.04
- os: ubuntu-24.04 # Use standard ubuntu-24.04 runner
compiler: gcc
version: "14"
python-version: "3.12"
castxml-epic: 1
cppstd: "-std=c++11"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected URL
castxml_filename: "castxml-ubuntu-24.04-arm-aarch64.zip" # Corrected filename
castxml_tar_filename: "castxml-ubuntu-24.04-arm-aarch64.tar.gz" # Corrected tar filename
container:
image: arm64v8/ubuntu:24.04
- os: macos-13
compiler: xcode
version: "default"
python-version: "3.10"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-macos-15-x86_64.zip"
castxml_filename: "castxml-macos-15-x86_64.zip"
castxml_tar_filename: "castxml-macos-15-x86_64.tar.gz"
- os: macos-14
compiler: xcode
version: "default"
python-version: "3.12"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-macos-15-arm64.zip"
castxml_filename: "castxml-macos-15-arm64.zip"
castxml_tar_filename: "castxml-macos-15-arm64.tar.gz"
- os: windows-latest # Add Windows
compiler: msvc # Or whatever compiler you use on Windows
version: "default" # Adjust as needed
python-version: "3.10"
castxml-epic: 0
cppstd: "-std=c++17"
castxml_url: "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v0.6.11/castxml-windows-2025-amd64.zip" # Windows URL
castxml_filename: "castxml-windows-2025-amd64.zip"
castxml_tar_filename: "castxml-windows-2025-amd64.tar.gz" # Windows tar.gz name.
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install Python lib and test libs
run: pip install '.[test]'
- name: Run pycodestyle
run: pycodestyle . --exclude=docs
- name: Setup CastXML
run: |
echo "Downloading CastXML from ${{ matrix.castxml_url }}..."
wget -q "${{ matrix.castxml_url }}" -O "${{ matrix.castxml_filename }}"
echo "Unzipping ${{ matrix.castxml_filename }}..."
unzip -q "${{ matrix.castxml_filename }}" -d ~/
if [ ! -f ~/"${{ matrix.castxml_tar_filename }}" ]; then
echo "Error: Inner tar.gz archive '${{ matrix.castxml_tar_filename }}' not found!"
exit 1
fi
echo "Extracting ~/${{ matrix.castxml_tar_filename }} to ~/castxml_install..."
mkdir -p ~/castxml_install
tar -xzf ~/"${{ matrix.castxml_tar_filename }}" -C ~/castxml_install
# --- Windows-specific handling ---
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
if [ ! -f ~/castxml_install/castxml.exe ]; then
echo "Error: castxml.exe binary not found in ~/castxml_install!"
exit 1
fi
echo "Adding ~/castxml_install to PATH..."
echo "$HOME/castxml_install" >> $GITHUB_PATH
else
# --- Handling for non-Windows platforms ---
if [ ! -f ~/castxml_install/castxml ]; then
echo "Error: castxml binary not found in ~/castxml_install!"
exit 1
fi
chmod +x ~/castxml_install/castxml
echo "Adding ~/castxml_install to PATH..."
echo "$HOME/castxml_install" >> $GITHUB_PATH
fi
- name: Run tests
run: |
echo "Using castxml at: $(which castxml)"
castxml --version
pytest tests