Skip to content

Merge queue

Merge queue #882

name: Merge queue
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
merge-queue:
name: Merge queue (${{ matrix.runner }}, GHC${{ matrix.ghc }}, LLVM${{matrix.llvm }})
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
strategy:
matrix:
include:
- runner: 'macos-latest'
ghc: '9.4.8'
llvm: '14'
- runner: 'windows-latest'
ghc: '9.4.8'
llvm: '14'
# Vary LLVM version from 14 to 20.
- runner: 'ubuntu-latest'
ghc: '9.4.8'
llvm: '14'
- runner: 'ubuntu-latest'
ghc: '9.4.8'
llvm: '16'
- runner: 'ubuntu-latest'
ghc: '9.4.8'
llvm: '18'
- runner: 'ubuntu-latest'
ghc: '9.4.8'
llvm: '20'
- runner: 'ubuntu-latest'
ghc: '9.4.8'
llvm: '21'
# Vary GHC version from 9.2 to 9.12.
- runner: 'ubuntu-latest'
ghc: '9.2.8'
llvm: '14'
- runner: 'ubuntu-latest'
ghc: '9.6.7'
llvm: '14'
- runner: 'ubuntu-latest'
ghc: '9.8.4'
llvm: '14'
- runner: 'ubuntu-latest'
ghc: '9.10.3'
llvm: '14'
- runner: 'ubuntu-latest'
ghc: '9.12.2'
llvm: '14'
fail-fast: false
steps:
- name: Set git to use LF
shell: bash
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checkout
uses: actions/checkout@v4
- name: Build and test `hs-bindgen` and manual
uses: ./.github/actions/base
# PRs can only be added to the MQ when all "required" checks pass.
# PRs can only be merged into `main` when all "required" checks pass in the MQ.
#
# So we need to always run all checks, but skip PR view jobs in the MQ, and
# MQ jobs in the PR view.
#
# We also run all jobs on pushes to the default ('main') branch. These
# jobs on the default branch create caches that can be restored on other
# branches. Without creating caches on the default branch, other
# branches typically have little to no caches to restore. See the
# "restrictions for accessing a cache" documentation for more
# information:
# https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching#restrictions-for-accessing-a-cache
if: ${{ github.event_name == 'merge_group' || (github.event_name == 'push' && github.ref_name == 'main') }}
with:
runner: ${{ matrix.runner }}
ghc: ${{ matrix.ghc }}
llvm: ${{ matrix.llvm }}