Skip to content

main

main #1827

Workflow file for this run

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 }}-go
${{ 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