[LLVM] Bump to cb1ad985b #199
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Build, test, release EUDSL" | |
on: | |
workflow_dispatch: | |
inputs: | |
force_debug_with_tmate: | |
type: boolean | |
description: 'Run the build with tmate session' | |
required: false | |
default: false | |
debug_with_tmate: | |
type: boolean | |
description: 'Run the build with a tmate session ONLY in case of failure' | |
required: false | |
default: false | |
pull_request: | |
paths: | |
- ".github/workflows/build_test_release_eudsl.yml" | |
- "projects/eudsl-tblgen" | |
- "third_party/llvm-project" | |
merge_group: | |
push: | |
branches: | |
- main | |
paths: | |
- ".github/workflows/build_test_release_eudsl.yml" | |
- "projects/eudsl-tblgen" | |
- "third_party/llvm-project" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
build-eudsl-tblgen: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: "ubuntu_x86_64" | |
runs-on: "ubuntu-22.04" | |
os: "ubuntu" | |
- name: "windows_x86_64" | |
runs-on: "windows-2019" | |
os: "windows" | |
- name: "macos_arm64" | |
runs-on: "macos-14" | |
os: "macos" | |
- name: "macos_x86_64" | |
runs-on: "macos-13" | |
os: "macos" | |
runs-on: ${{ matrix.runs-on }} | |
name: "Build eudsl-tblgen ${{ matrix.name }}" | |
defaults: | |
run: | |
shell: bash | |
permissions: | |
id-token: write | |
contents: write | |
env: | |
# either the PR number or `branch-N` where N always increments | |
cache-key: eudsl_${{ matrix.name }}_clang_${{ format('{0}-{1}', github.ref_name, github.run_number) }} | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: "Check out repository" | |
uses: actions/[email protected] | |
- name: "Setup base" | |
uses: ./.github/actions/setup_base | |
id: setup_base | |
with: | |
cache-key: ${{ env.cache-key }} | |
restore-key: "eudsl_${{ matrix.name }}_clang" | |
os: ${{ matrix.os }} | |
arch: ${{ matrix.arch }} | |
- name: "Download MLIR" | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
if [[ "${{ matrix.os }}" == "almalinux" ]] || [[ "${{ matrix.os }}" == "ubuntu" ]]; then | |
export RELEASE_PREFIX="mlir_manylinux_x86_64" | |
else | |
export RELEASE_PREFIX="mlir_${{ matrix.name }}" | |
fi | |
RELEASE_URL=$(gh release view latest --json assets -q '.assets |= sort_by(.createdAt) | .assets | map(select(.name | contains(env.RELEASE_PREFIX))) | .[-1] | .url') | |
curl -sLO $RELEASE_URL | |
tar xf $RELEASE_PREFIX*.tar.gz | |
echo "LLVM_DIR=$PWD/llvm-install/lib/cmake/llvm" >> $GITHUB_ENV | |
- name: "Build eudsl-tblgen" | |
id: build | |
run: | | |
pip install cibuildwheel | |
if [[ "${{ matrix.os }}" == "ubuntu" ]]; then | |
export LLVM_DIR="/host/$LLVM_DIR" | |
fi | |
# these have to match the deployment targets of the LLVM build runners | |
# ld: warning: object file (libLLVMTableGen.a[3](Error.cpp.o)) was built for newer 'macOS' version (13.7) than being linked (10.13) | |
if [[ "${{ matrix.runs-on }}" == "macos-14" ]]; then | |
export MACOSX_DEPLOYMENT_TARGET=14.0 | |
elif [[ "${{ matrix.runs-on }}" == "macos-13" ]]; then | |
export MACOSX_DEPLOYMENT_TARGET=13.7 | |
fi | |
$python3_command -m cibuildwheel "$PWD/projects/eudsl-tblgen" --output-dir wheelhouse | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: eudsl_tblgen_${{ matrix.name }}_artifact | |
path: wheelhouse/*.whl | |
if-no-files-found: warn | |
- name: "Setup tmate session" | |
if: ${{ (failure() && inputs.debug_with_tmate) || inputs.force_debug_with_tmate }} | |
uses: mxschmitt/[email protected] | |
with: | |
limit-access-to-actor: true | |
install-dependencies: ${{ startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'windows') || startsWith(matrix.os, 'ubuntu') }} | |
test-eudsl-tblgen: | |
needs: [build-eudsl-tblgen] | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: ["ubuntu-22.04", "macos-14", "macos-13", "windows-2019"] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
include: [ | |
{runs-on: "ubuntu-22.04", name: "ubuntu_x86_64", os: "ubuntu"}, | |
{runs-on: "windows-2019", name: "windows_x86_64", os: "windows"}, | |
{runs-on: "macos-14", name: "macos_arm64", os: "macos"}, | |
{runs-on: "macos-13", name: "macos_x86_64", os: "macos"}, | |
] | |
runs-on: ${{ matrix.runs-on }} | |
name: "Test eudsl-tblgen ${{ matrix.name }}" | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: "Check out repository" | |
uses: actions/[email protected] | |
with: | |
submodules: false | |
- name: "Install Python" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "${{ matrix.python-version }}" | |
- uses: actions/download-artifact@v4 | |
with: | |
name: eudsl_tblgen_${{ matrix.name }}_artifact | |
path: wheelhouse | |
- name: "Install eudsl-tblgen" | |
run: | | |
python -m pip install pytest | |
python -m pip install eudsl-tblgen -f wheelhouse | |
- name: "Test eudsl-tblgen" | |
run: | | |
export TESTS_DIR="$PWD/projects/eudsl-tblgen/tests" | |
if [ ${{ matrix.os }} == 'windows' ]; then | |
python -m pytest -s -rA $TESTS_DIR | |
else | |
python -m pytest -rA --capture=tee-sys $TESTS_DIR | |
fi | |
release-eudsl-tblgen: | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
needs: [test-eudsl-tblgen] | |
strategy: | |
fail-fast: false | |
matrix: | |
name: [ubuntu_x86_64, windows_x86_64, macos_arm64, macos_x86_64] | |
runs-on: "ubuntu-22.04" | |
name: "Release eudsl-tblgen" | |
permissions: | |
id-token: write | |
contents: write | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: eudsl_tblgen_${{ matrix.name }}_artifact | |
path: wheelhouse | |
- name: Release current commit | |
uses: ncipollo/[email protected] | |
with: | |
artifacts: "wheelhouse/eudsl_tblgen*.whl" | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
tag: "latest" | |
name: "latest" | |
removeArtifacts: false | |
allowUpdates: true | |
replacesArtifacts: true | |
makeLatest: true | |
omitBody: true |