main #1842
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: main | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 3 * * *' | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: [ | |
{ msystem: MINGW64, prefix: mingw-w64-x86_64, cc: gcc, cxx: g++, fc: gfortran }, | |
{ msystem: MINGW32, prefix: mingw-w64-i686, cc: gcc, cxx: g++, fc: gfortran }, | |
{ msystem: UCRT64, prefix: mingw-w64-ucrt-x86_64, cc: gcc, cxx: g++, fc: gfortran }, | |
{ msystem: UCRT64, prefix: mingw-w64-ucrt-x86_64, cc: clang, cxx: clang++, fc: '' }, | |
{ msystem: CLANG32, prefix: mingw-w64-clang-i686, cc: clang, cxx: clang++ }, | |
{ msystem: CLANG64, prefix: mingw-w64-clang-x86_64, cc: clang, cxx: clang++, fc: flang }, | |
{ msystem: MSYS, cc: gcc, cxx: g++, fc: gfortran }, | |
] | |
name: ${{ matrix.msystem }}-${{ matrix.cc }} | |
runs-on: windows-2022 | |
env: | |
CC: ${{ matrix.cc }} | |
CXX: ${{ matrix.cxx }} | |
FC: ${{ matrix.fc }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
if: ${{ matrix.msystem != 'MSYS' }} | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: >- | |
${{ matrix.prefix }}-meson | |
${{ matrix.prefix }}-ninja | |
${{ matrix.prefix }}-cmake | |
${{ matrix.prefix }}-make | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'i686') && matrix.cc == 'gcc' && 'gcc-ada' || 'ninja'}} | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'i686') && matrix.cc != 'gcc' && 'openmp' || 'ninja'}} | |
${{ matrix.prefix }}-${{ matrix.cc != 'gcc' && 'lld' || 'ninja'}} | |
${{ matrix.prefix }}-${{ matrix.cc != 'gcc' && 'libc++' || 'ninja'}} | |
${{ matrix.prefix }}-${{ matrix.fc == 'gfortran' && 'gcc-fortran' || 'ninja'}} | |
${{ matrix.prefix }}-${{ matrix.fc == 'flang' && 'flang' || 'ninja'}} | |
${{ matrix.prefix }}-${{ matrix.cc }} | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'clang-i686') && 'rust' || 'ninja'}} | |
${{ matrix.prefix }}-python | |
${{ matrix.prefix }}-python-setuptools | |
${{ matrix.prefix }}-cython | |
${{ matrix.prefix }}-autotools | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'clang-i686') && 'go' || 'ninja'}} | |
${{ matrix.prefix }}-ruby | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'i686') && 'perl' || 'ninja'}} | |
${{ matrix.prefix }}-${{ !contains(matrix.prefix, 'i686') && 'nodejs' || 'ninja'}} | |
${{ matrix.prefix }}-gdb | |
${{ matrix.prefix }}-gettext | |
make | |
git | |
- uses: msys2/setup-msys2@v2 | |
if: ${{ matrix.msystem == 'MSYS' }} | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: >- | |
meson | |
ninja | |
cmake | |
make | |
gcc | |
python | |
python-setuptools | |
cython | |
autotools | |
ruby | |
perl | |
mingw-w64-cross-gcc | |
mingw-w64-cross-mingwarm64-gcc | |
gdb | |
git | |
gettext-devel | |
- name: Add staging repo | |
shell: msys2 {0} | |
run: | | |
sed -i '1s|^|[staging]\nServer = https://repo.msys2.org/staging/\nSigLevel = Never\n|' /etc/pacman.conf | |
- name: Update using staging | |
run: | | |
msys2 -c 'pacman --noconfirm -Suuy' | |
msys2 -c 'pacman --noconfirm -Suu' | |
- name: "test: toolchain" | |
shell: msys2 {0} | |
run: | | |
make -j toolchain | |
- name: "test: rust" | |
shell: msys2 {0} | |
run: | | |
make -j rust | |
- name: "test: python" | |
shell: msys2 {0} | |
run: | | |
make -j python | |
- name: "test: cmake" | |
shell: msys2 {0} | |
run: | | |
make -j cmake | |
- name: "test: autotools" | |
shell: msys2 {0} | |
run: | | |
make -j autotools | |
- name: "test: golang" | |
shell: msys2 {0} | |
run: | | |
make -j golang | |
- name: "test: fortran" | |
shell: msys2 {0} | |
run: | | |
make -j fortran | |
- name: "test: ruby" | |
shell: msys2 {0} | |
run: | | |
make -j ruby | |
- name: "test: perl" | |
shell: msys2 {0} | |
run: | | |
make -j perl | |
- name: "test: nodejs" | |
shell: msys2 {0} | |
run: | | |
make -j nodejs | |
- name: "test: runtime" | |
shell: msys2 {0} | |
run: | | |
make -j runtime | |
- name: "test: ada" | |
shell: msys2 {0} | |
run: | | |
make -j ada | |
- name: "test: tools" | |
shell: msys2 {0} | |
run: | | |
make -j tools | |
- name: "test: makepkg" | |
shell: msys2 {0} | |
run: | | |
make -j makepkg | |
- name: "test: libtool" | |
shell: msys2 {0} | |
run: | | |
make -j libtool | |
- name: "test: gettext" | |
shell: msys2 {0} | |
run: | | |
make -j gettext | |
- name: "test: keyring" | |
shell: msys2 {0} | |
run: | | |
make -j keyring |