Skip to content

Build all

Build all #185

Workflow file for this run

name: Build all
on:
workflow_dispatch:
inputs:
fatal_warnings:
description: 'Build with --fatal-meson-warning (yes/no)'
default: 'no'
required: false
schedule:
# Run every Sunday at midnight
- cron: '0 0 * * 0'
jobs:
Ubuntu:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: ubuntu-latest
env:
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install packages
run: |
sudo apt-get update
sudo apt-get -y install build-essential python3-pip ninja-build
python3 -m pip install git+https://github.com/mesonbuild/meson
- name: Sanity Checks
run: |
./tools/fake_tty.py ./tools/sanity_checks.py
Alpine:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: ubuntu-latest
steps:
- uses: jirutka/setup-alpine@v1
with:
packages: >
build-base cmake git linux-headers pkgconf py3-pip samurai sudo
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanity Checks
env:
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
run: |
# Work around PEP 668 nonsense…
sudo rm -vf /usr/lib*/python3.*/EXTERNALLY-MANAGED
python -m pip install --pre meson
./tools/fake_tty.py ./tools/sanity_checks.py
shell: alpine.sh {0}
VisualStudio:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: windows-latest
strategy:
matrix:
platform: ['x64', 'x86']
env:
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Install a 32-bit Python so building related stuff work.
- name: Setup x86 Python
if: matrix.platform == 'x86'
uses: actions/setup-python@v5
with:
architecture: 'x86'
python-version: '3.12'
- name: Install packages
run: |
python -m pip install git+https://github.com/mesonbuild/meson
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{matrix.platform}}
- name: Sanity Checks
run: |
python tools/sanity_checks.py
VisualStudio-clang-cl:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: windows-latest
env:
CC: clang-cl
CXX: clang-cl
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install packages
run: |
python -m pip install git+https://github.com/mesonbuild/meson
- uses: ilammy/msvc-dev-cmd@v1
- name: Sanity Checks
run: |
python tools/sanity_checks.py
MSYS2:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: windows-latest
env:
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
strategy:
matrix:
platform: ['UCRT64', 'CLANG64']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.platform}}
install: >-
bison
dos2unix
git
pacboy: >-
cc:p
cmake:p
ninja:p
pkgconf:p
python-certifi:p
python-pip:p
# Make sure Python is updated to >=3.11 (fix https://github.com/msys2/MINGW-packages/issues/17415).
update: true
- name: Install packages
shell: msys2 {0}
run: |
python -m pip install git+https://github.com/mesonbuild/meson
- name: Sanity Checks
shell: msys2 {0}
run: |
python tools/sanity_checks.py
MacOS:
if: github.event_name != 'schedule' || github.repository == 'mesonbuild/wrapdb'
runs-on: ${{ matrix.platform == 'arm64' && 'macos-14' || 'macos-12' }}
env:
TEST_BUILD_ALL: 1
TEST_FATAL_WARNINGS: ${{ github.event.inputs.fatal_warnings }}
strategy:
matrix:
platform: ['arm64', 'x86_64']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: brew update
# github actions overwrites brew's python. Force it to reassert itself, by running in a separate step.
- name: unbreak python in github actions
run: |
find $(brew --prefix)/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
sudo rm -rf /Library/Frameworks/Python.framework/
brew install --force --quiet python3 && brew unlink python3 && brew unlink python3 && brew link --overwrite python3
# Work around PEP 668 nonsense…
find $(brew --prefix)/Cellar/python* -name EXTERNALLY-MANAGED -print0 | xargs -0 rm -vf
- name: Install packages
run: |
brew install ninja
python3 -m pip install git+https://github.com/mesonbuild/meson
- name: Sanity Checks
run: |
./tools/sanity_checks.py