Skip to content

Update dependency versions #8

Update dependency versions

Update dependency versions #8

name: Build

Check failure on line 1 in .github/workflows/build-cross-action.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/build-cross-action.yml

Invalid workflow file

(Line: 40, Col: 9): Unexpected symbol: '"x86_64"'. Located at position 24 within expression: (contains(matrix.host, "x86_64") && "ubuntu-24.04") || "ubuntu-24.04-arm"
on:
workflow_call:
inputs:
changed-files:
required: true
type: string
description: Build relenv python builds
kind:
required: true
type: string
description: Which kind of build to run native or cross
jobs:
build_linux:
strategy:
fail-fast: false
matrix:
version:
- 3.10.18
- 3.11.13
- 3.12.11
- 3.13.5
host:
- x86_64
- aarch64
target:
- x86_64
- aarch64
name: "Python ${{ matrix.version }} Linux ${{ matrix.target }} on ${{ matrix.host }}"
if: |
( matrix.host == matrix.target && inputs.kind == "native" ) ||
( matrix.host != matrix.target && inputs.kind == "cross" )
runs-on:
- ${{ (contains(matrix.host, "x86_64") && "ubuntu-24.04") || "ubuntu-24.04-arm" }}
env:
RELENV_DATA: ${{ github.workspace }}
steps:
- uses: actions/checkout@v3
- name: Install Dependencies
run: |
echo "$RELENV_DATA"
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential bison python3-all patchelf swig python3-virtualenv
virtualenv venv
env/bin/python3 -m pip install nox ppbt
- name: Python Version
run: |
python3 --version
python3 -c 'import os; print(os.name)'
- name: Download Toolchain Artifact
uses: actions/download-artifact@v4
with:
name: toolchain-${{ matrix.host }}-${{ matrix.target }}-linux-gnu.tar.xz
path: toolchain/toolchain-${{ matrix.host }}-${{ matrix.target }}-linux-gnu.tar.xz
- name: Extract Toolchain Artifact
run: |
tar -C toolchain -xvf toolchain/toolchain-${{ matrix.host }}-${{ matrix.target }}-linux-gnu.tar.xz
#- name: Fetch Toolchain
# run: |
# python3 -m relenv toolchain fetch --arch=${{ matrix.target }}
- name: Fetch Native Build
if: ${{ matrix.host != matrix.target }}
run: |
python3 -m relenv fetch --python=${{ matrix.version }}
- name: Build
run: |
python3 -m relenv build --arch=${{ matrix.target }} --python=${{ matrix.version }}
- name: Verify Build
if: ${{ matrix.host == matrix.target }}
run: |
python3 -m nox -e tests -- tests/test_verify_build.py
- name: Linux Logs
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.version }}-${{ matrix.host }}-${{ matrix.target }}-linux-gnu-logs
path: logs/*
retention-days: 5
- name: "Upload artifact: build/${{ matrix.version }}-${{ matrix.target }}-linux-gnu.tar.xz"
uses: actions/upload-artifact@v4
if: ${{ matrix.host == matrix.target }}
with:
name: ${{ matrix.version }}-${{ matrix.target }}-linux-gnu.tar.xz
path: build/${{ matrix.version }}-${{ matrix.target }}-linux-gnu.tar.xz
retention-days: 5
build_macos:
name: "Python macOS"
runs-on: macos-12
strategy:
fail-fast: false
matrix:
version:
- 3.10.18
- 3.11.13
- 3.12.11
- 3.13.5
arch:
- x86_64
env:
RELENV_DATA: ${{ github.workspace }}
steps:
- uses: actions/checkout@v3
- name: Install nox
run: |
pip3 install nox
- name: Uninstall gettext
run: |
brew uninstall --ignore-dependencies gettext
- name: Build
run: |
python3 -m relenv build --python=${{ matrix.version }}
- name: Re-install gettext
run: |
brew install gettext
- name: Verify Build
run: |
python3 -m nox -e tests -- tests/test_verify_build.py
- name: MacOS Logs
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.version }}-${{ matrix.arch }}-macos-logs
path: logs/*
retention-days: 5
- name: Python build
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.version }}-${{ matrix.arch }}-macos.tar.xz
path: build/${{ matrix.version }}-${{ matrix.arch }}-macos.tar.xz
retention-days: 5
build_windows:
name: "Python Windows"
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
version:
- 3.10.18
- 3.11.13
- 3.12.11
- 3.13.5
arch:
- amd64
- x86
env:
RELENV_DATA: ${{ github.workspace }}
steps:
- uses: actions/checkout@v3
- name: Install VS Build Tools
run: |
relenv/_scripts/install_vc_build.ps1 -CICD
- name: Install nox
run: |
pip3 install nox
# - name: Fetch Native Build
# if: ${{ matrix.arch != 'amd64' }}
# run: |
# python3 -m relenv fetch --python=${{ matrix.version }}
- name: Build Python with Relenv
run: |
python -m relenv build --arch=${{ matrix.arch }} --python=${{ matrix.version }}
- name: Verify Build
if: ${{ matrix.arch == 'amd64' }}
run: |
nox -e tests -- tests/test_verify_build.py
- name: Upload Build Logs
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.version }}-${{ matrix.arch }}-windows-logs
path: logs/*
retention-days: 5
- name: Upload Zipfile
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.version }}-${{ matrix.arch }}-win.tar.xz
path: build/${{ matrix.version }}-${{ matrix.arch }}-win.tar.xz
retention-days: 5