forked from OpenFUSIONToolkit/OpenFUSIONToolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (111 loc) · 3.8 KB
/
cd_nightly.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: CD Build
on:
push:
branches:
- main
jobs:
build:
name: ${{ format('Nightly ({0})', matrix.config.name) }}
runs-on: ${{ matrix.config.os }}
timeout-minutes: 30
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
FC: ${{ matrix.config.fc }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "Linux-x86_64",
os: ubuntu-20.04,
cc: "gcc-10", cxx: "g++-10", fc: "gfortran-10", python: "python", build_libs_flags: ""
}
- {
name: "macOS-x86_64",
os: macos-12,
cc: "gcc-12", cxx: "g++-12", fc: "gfortran-12", python: "python3", xcode_path: "/Applications/Xcode_14.2.app/Contents/Developer", build_libs_flags: ""
}
- {
name: "macOS-x86_64-Rosetta",
os: macos-12,
cc: "gcc-12", cxx: "g++-12", fc: "gfortran-12", python: "python3", xcode_path: "/Applications/Xcode_14.2.app/Contents/Developer", build_libs_flags: "--oblas_no_avx"
}
- {
name: "macOS-arm64",
os: macos-14,
cc: "gcc-13", cxx: "g++-13", fc: "gfortran-13", python: "python3", xcode_path: "/Applications/Xcode_15.4.app/Contents/Developer", build_libs_flags: ""
}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Cache external libraries
id: cache-ext-libs
uses: actions/cache@v4
with:
path: libs
key: ${{ matrix.config.os }}-nightly-${{ hashFiles('src/utilities/build_libs.py') }}
- name: Get OS version (Linux)
if: startsWith(matrix.config.os, 'ubuntu')
run: lsb_release -d
- name: Get OS version (macOS)
if: startsWith(matrix.config.os, 'macos')
run: |
sw_vers -productVersion
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
sudo xcode-select -s ${{ matrix.config.xcode_path }}
xcode-select -p
- name: Check compilers
run: |
$CC --version
$CXX --version
$FC --version
- name: Create build dir
if: ${{ steps.cache-ext-libs.outputs.cache-hit != 'true' }}
run: mkdir libs
- name: Build external (Linux)
if: startsWith(matrix.config.os, 'ubuntu')
shell: bash
working-directory: libs
run: >
${{ matrix.config.python }} ../src/utilities/build_libs.py --no_dl_progress --nthread=2
--build_umfpack=1 --build_arpack=1 --oblas_dynamic_arch --oft_package ${{ matrix.config.build_libs_flags }}
- name: Build external (macOS)
if: startsWith(matrix.config.os, 'macos')
shell: bash
working-directory: libs
run: >
${{ matrix.config.python }} ../src/utilities/build_libs.py --no_dl_progress --nthread=2
--build_umfpack=1 --build_arpack=1 --oft_package ${{ matrix.config.build_libs_flags }}
- name: Upload library failure log
uses: actions/upload-artifact@v4
if: failure()
with:
name: Library failure log
path: libs/build/build_error.log
- name: Remove external build directory
shell: bash
working-directory: libs
run: rm -rf build
- name: Configure OFT
shell: bash
working-directory: libs
run: bash config_cmake.sh
- name: Build OFT
shell: bash
working-directory: libs/build_release
run: make
- name: Install OFT
shell: bash
working-directory: libs/build_release
run: make install
- name: Package OFT
shell: bash
working-directory: libs/build_release
run: make package
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.config.name }}-${{ github.sha }}
path: libs/build_release/OpenFUSIONToolkit_*
overwrite: true