Merge pull request #3590 from mmuetzel/ci-msys2
Add action for MSYS2 builds.
This commit is contained in:
commit
4dbdc28c25
|
@ -101,3 +101,120 @@ jobs:
|
||||||
cd build
|
cd build
|
||||||
cmake -DDYNAMIC_ARCH=1 -DNOFORTRAN=0 -DBUILD_WITHOUT_LAPACK=0 -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release ..
|
cmake -DDYNAMIC_ARCH=1 -DNOFORTRAN=0 -DBUILD_WITHOUT_LAPACK=0 -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release ..
|
||||||
make -j$(nproc)
|
make -j$(nproc)
|
||||||
|
|
||||||
|
|
||||||
|
msys2:
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
msystem: [MINGW64, MINGW32, CLANG64]
|
||||||
|
idx: [int32, int64]
|
||||||
|
include:
|
||||||
|
- msystem: MINGW64
|
||||||
|
idx: int32
|
||||||
|
target-prefix: mingw-w64-x86_64
|
||||||
|
fc-pkg: mingw-w64-x86_64-gcc-fortran
|
||||||
|
- msystem: MINGW32
|
||||||
|
idx: int32
|
||||||
|
target-prefix: mingw-w64-i686
|
||||||
|
fc-pkg: mingw-w64-i686-gcc-fortran
|
||||||
|
- msystem: CLANG64
|
||||||
|
idx: int32
|
||||||
|
target-prefix: mingw-w64-clang-x86_64
|
||||||
|
c-lapack-flags: -DC_LAPACK=ON
|
||||||
|
- msystem: MINGW64
|
||||||
|
idx: int64
|
||||||
|
idx64-flags: -DBINARY=64 -DINTERFACE64=1
|
||||||
|
target-prefix: mingw-w64-x86_64
|
||||||
|
fc-pkg: mingw-w64-x86_64-gcc-fortran
|
||||||
|
- msystem: CLANG64
|
||||||
|
idx: int64
|
||||||
|
idx64-flags: -DBINARY=64 -DINTERFACE64=1
|
||||||
|
target-prefix: mingw-w64-clang-x86_64
|
||||||
|
c-lapack-flags: -DC_LAPACK=ON
|
||||||
|
exclude:
|
||||||
|
- msystem: MINGW32
|
||||||
|
idx: int64
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
# Use MSYS2 bash as default shell
|
||||||
|
shell: msys2 {0}
|
||||||
|
|
||||||
|
env:
|
||||||
|
CHERE_INVOKING: 1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Get CPU name
|
||||||
|
shell: pwsh
|
||||||
|
run : |
|
||||||
|
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
|
||||||
|
|
||||||
|
- name: Install build dependencies
|
||||||
|
uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.msystem }}
|
||||||
|
update: true
|
||||||
|
release: false # Use pre-installed version
|
||||||
|
install: >-
|
||||||
|
base-devel
|
||||||
|
${{ matrix.target-prefix }}-cc
|
||||||
|
${{ matrix.fc-pkg }}
|
||||||
|
${{ matrix.target-prefix }}-cmake
|
||||||
|
${{ matrix.target-prefix }}-ninja
|
||||||
|
${{ matrix.target-prefix }}-ccache
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Compilation cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
# It looks like this path needs to be hard-coded.
|
||||||
|
path: C:/msys64/home/runneradmin/.ccache
|
||||||
|
# We include the commit sha in the cache key, as new cache entries are
|
||||||
|
# only created if there is no existing entry for the key yet.
|
||||||
|
key: ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ github.ref }}-${{ github.sha }}
|
||||||
|
# Restore a matching ccache cache entry. Prefer same branch.
|
||||||
|
restore-keys: |
|
||||||
|
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ github.ref }}
|
||||||
|
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}
|
||||||
|
|
||||||
|
- name: Configure ccache
|
||||||
|
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota.
|
||||||
|
run: |
|
||||||
|
which ccache
|
||||||
|
test -d ~/.ccache || mkdir -p ~/.ccache
|
||||||
|
echo "max_size = 250M" > ~/.ccache/ccache.conf
|
||||||
|
echo "compression = true" >> ~/.ccache/ccache.conf
|
||||||
|
ccache -s
|
||||||
|
echo $HOME
|
||||||
|
cygpath -w $HOME
|
||||||
|
|
||||||
|
- name: Configure OpenBLAS
|
||||||
|
run: |
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake -DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DBUILD_STATIC_LIBS=ON \
|
||||||
|
-DDYNAMIC_ARCH=ON \
|
||||||
|
-DUSE_THREAD=ON \
|
||||||
|
-DNUM_THREADS=64 \
|
||||||
|
-DTARGET=CORE2 \
|
||||||
|
${{ matrix.idx64-flags }} \
|
||||||
|
${{ matrix.c-lapack-flags }} \
|
||||||
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
|
||||||
|
..
|
||||||
|
|
||||||
|
- name: Build OpenBLAS
|
||||||
|
run: cd build && cmake --build .
|
||||||
|
|
||||||
|
- name: Show ccache status
|
||||||
|
continue-on-error: true
|
||||||
|
run: ccache -s
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
timeout-minutes: 60
|
||||||
|
run: cd build && ctest
|
||||||
|
|
Loading…
Reference in New Issue