Skip to content

✏️ Fix link in changelog #127

✏️ Fix link in changelog

✏️ Fix link in changelog #127

name: 👷 Build Portable MLIR Toolchain
on:
workflow_dispatch:
inputs:
llvm-project-ref:
description: "llvm-project ref or tag (e.g., llvmorg-21.1.6)"
required: true
type: string
release:
description: "Whether to create a GitHub release with the built artifacts"
required: true
type: boolean
release-tag:
description: "Tag for the GitHub release (e.g., 2025.11.25)"
required: true
type: string
release-notes:
description: "Release notes for the GitHub release"
required: true
type: string
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
change-detection:
name: 🕵️ Check
runs-on: ubuntu-24.04
outputs:
run-linux: ${{ steps.linux-changes.outputs.run-linux || false }}
run-macos: ${{ steps.macos-changes.outputs.run-macos || false }}
run-windows: ${{ steps.windows-changes.outputs.run-windows || false }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Collect changed Linux build files
if: github.event_name == 'pull_request'
id: changed-linux-files
uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0
with:
filter: scripts/toolchain/linux/**
- name: Set a flag for running Linux builds
if: github.event_name != 'pull_request' || steps.changed-linux-files.outputs.added_modified_renamed != ''
id: linux-changes
run: echo "run-linux=true" >> "${GITHUB_OUTPUT}"
- name: Collect changed macOS build files
if: github.event_name == 'pull_request'
id: changed-macos-files
uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0
with:
filter: scripts/toolchain/macos/**
- name: Set a flag for running macOS builds
if: github.event_name != 'pull_request' || steps.changed-macos-files.outputs.added_modified_renamed != ''
id: macos-changes
run: echo "run-macos=true" >> "${GITHUB_OUTPUT}"
- name: Collect changed Windows build files
if: github.event_name == 'pull_request'
id: changed-windows-files
uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0
with:
filter: scripts/toolchain/windows/**
- name: Set a flag for running Windows builds
if: github.event_name != 'pull_request' || steps.changed-windows-files.outputs.added_modified_renamed != ''
id: windows-changes
run: echo "run-windows=true" >> "${GITHUB_OUTPUT}"
linux:
needs: change-detection
if: fromJson(needs.change-detection.outputs.run-linux)
uses: ./.github/workflows/build-mlir-linux.yml
with:
llvm-project-ref: ${{ inputs.llvm-project-ref || 'llvmorg-21.1.6' }}
macos:
needs: change-detection
if: fromJson(needs.change-detection.outputs.run-macos)
uses: ./.github/workflows/build-mlir-macos.yml
with:
llvm-project-ref: ${{ inputs.llvm-project-ref || 'llvmorg-21.1.6' }}
windows:
needs: change-detection
if: fromJson(needs.change-detection.outputs.run-windows)
uses: ./.github/workflows/build-mlir-windows.yml
with:
llvm-project-ref: ${{ inputs.llvm-project-ref || 'llvmorg-21.1.6' }}
release:
needs: [linux, macos, windows]
if: ${{ inputs.release == true || false }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Download artifacts
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
with:
path: artifacts
- name: Create GitHub release
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release create ${{ inputs.release-tag }} \
artifacts/**/* \
installation/* \
--title "Setup MLIR ${{ inputs.release-tag }} Release" \
--notes "${{ inputs.release-notes }}"