Skip to content

Commit b6af65a

Browse files
authored
Merge pull request #183 from bonachea/ci-tweaks
[NO REVIEW] CI: Factorization and misc improvements
2 parents a43bdc0 + 72367b8 commit b6af65a

1 file changed

Lines changed: 39 additions & 56 deletions

File tree

.github/workflows/build.yml

Lines changed: 39 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ concurrency:
1616

1717
defaults:
1818
run:
19-
shell: bash
19+
shell: bash --noprofile --norc -e -x -o pipefail {0}
2020

2121
jobs:
2222
build:
@@ -85,32 +85,27 @@ jobs:
8585
- os: ubuntu-24.04
8686
compiler: ifx
8787
version: latest
88-
error_stop_code: 128
8988
container: intel/oneapi-toolkit:latest
9089

9190
- os: ubuntu-24.04
9291
compiler: ifx
9392
version: 2026.0.0
94-
error_stop_code: 128
9593
container: intel/oneapi-toolkit:2026.0.0-devel-ubuntu24.04
9694

9795
# https://hub.docker.com/r/intel/fortran-essentials/tags
9896
- os: ubuntu-24.04
9997
compiler: ifx
10098
version: 2025.3.0
101-
error_stop_code: 128
10299
container: intel/fortran-essentials:2025.3.0-0-devel-ubuntu24.04
103100

104101
- os: ubuntu-24.04
105102
compiler: ifx
106103
version: 2025.2.2
107-
error_stop_code: 128
108104
container: intel/fortran-essentials:2025.2.2-0-devel-ubuntu24.04
109105

110106
- os: ubuntu-24.04
111107
compiler: ifx
112108
version: 2025.2.0
113-
error_stop_code: 128
114109
container: intel/fortran-essentials:2025.2.0-0-devel-ubuntu24.04
115110

116111
# --- LFortran coverage ---
@@ -158,50 +153,47 @@ jobs:
158153
sudo apt-get update
159154
sudo apt list -a 'gfortran-*'
160155
sudo apt install -y build-essential
161-
if [[ ${COMPILER_VERSION} < 15 ]] ; then \
162-
sudo apt install -y gfortran-${COMPILER_VERSION} ; \
163-
else \
164-
curl -L https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh ; \
165-
chmod +x install-homebrew.sh ; \
166-
env CI=1 ./install-homebrew.sh ; \
167-
HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew" ; \
168-
${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils ; \
169-
ls -al ${HOMEBREW_PREFIX}/bin ; \
170-
echo "PATH=${HOMEBREW_PREFIX}/bin:${PATH}" >> "$GITHUB_ENV" ; \
171-
: Homebrew GCC@15 needs binutils 2.44+ ; \
172-
HOMEBREW_BINUTILS=$(ls -d ${HOMEBREW_PREFIX}/Cellar/binutils/2.*/bin ) ; \
173-
ls -al ${HOMEBREW_BINUTILS} ; \
174-
echo "FFLAGS=$FFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \
175-
echo "CFLAGS=$CFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \
176-
echo "CXXFLAGS=$CXXFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \
156+
if [[ ${COMPILER_VERSION} < 15 ]] ; then
157+
sudo apt install -y gfortran-${COMPILER_VERSION}
158+
else
159+
curl -L https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh
160+
chmod +x install-homebrew.sh
161+
env CI=1 ./install-homebrew.sh
162+
HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew"
163+
${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils
164+
ls -al ${HOMEBREW_PREFIX}/bin
165+
echo "PATH=${HOMEBREW_PREFIX}/bin:${PATH}" >> "$GITHUB_ENV"
166+
: Homebrew GCC@15 needs binutils 2.44+
167+
HOMEBREW_BINUTILS=$(ls -d ${HOMEBREW_PREFIX}/Cellar/binutils/2.*/bin )
168+
ls -al ${HOMEBREW_BINUTILS}
169+
echo "FFLAGS=$FFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV"
170+
echo "CFLAGS=$CFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV"
171+
echo "CXXFLAGS=$CXXFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV"
177172
fi
178173
179174
180175
- name: Install Ubuntu Container Dependencies
181176
if: ${{ contains(matrix.os, 'ubuntu') && matrix.container != '' && !contains(matrix.container, 'phhargrove') }}
182177
run: |
183-
set -x
184178
apt update
185179
apt install -y build-essential pkg-config make git curl
186180
# Add container lfortran to PATH:
187-
if test "$FC" = "lfortran"; then \
188-
echo "/app/bin" >> "$GITHUB_PATH" ; \
189-
ls -alh /app/bin ; \
190-
ls -alh /app/share/lfortran/lib/ ; \
181+
if test "$FC" = "lfortran"; then
182+
echo "/app/bin" >> "$GITHUB_PATH"
183+
ls -alh /app/bin
184+
ls -alh /app/share/lfortran/lib/
191185
fi
192186
193187
- name: Install macOS Dependencies
194188
if: contains(matrix.os, 'macos')
195189
run: |
196-
set -x
197190
brew update
198191
# fpm binary distribution for macOS requires gfortran shared libraries from gcc@12
199192
brew install gcc@12
200193
201194
- name: Install LLVM flang on macOS
202195
if: contains(matrix.os, 'macos') && matrix.compiler == 'flang'
203196
run: |
204-
set -x
205197
brew install llvm@${COMPILER_VERSION} flang
206198
# workaround issue #228: clang cannot find homebrew flang's C header
207199
for p in /opt/homebrew /usr/local $(brew --prefix) ; do find $p/Cellar/flang -name ISO_Fortran_binding.h 2>/dev/null || true ; done
@@ -211,30 +203,24 @@ jobs:
211203
212204
- name: Setup Compilers
213205
run: |
214-
set -x
215-
if test "$FC" = "flang" ; then \
216-
echo "FPM_FC=flang-new" >> "$GITHUB_ENV" ; \
217-
elif test "$FC" = "ifx" ; then \
218-
echo "FPM_FC=ifx" >> "$GITHUB_ENV" ; \
219-
echo "FFLAGS=-coarray -fpp -g -traceback $FFLAGS" >> "$GITHUB_ENV" ; \
220-
echo "FOR_COARRAY_NUM_IMAGES=4" >> "$GITHUB_ENV" ; \
221-
: echo "FOR_COARRAY_DEBUG_STARTUP=1" >> "$GITHUB_ENV" ; \
222-
: echo "FOR_COARRAY_MPI_VERBOSE=1" >> "$GITHUB_ENV" ; \
223-
elif test "$FC" = "lfortran" ; then \
224-
echo "FPM_FC=lfortran" >> "$GITHUB_ENV" ; \
225-
echo "FFLAGS=--cpp --separate-compilation --realloc-lhs-arrays $FFLAGS" >> "$GITHUB_ENV" ; \
226-
echo "FPM_FLAGS=--profile debug --verbose" >> "$GITHUB_ENV" ; : fpm 0.13 workaround ; \
227-
else \
228-
echo "FPM_FC=gfortran-${COMPILER_VERSION}" >> "$GITHUB_ENV" ; \
229-
echo "FFLAGS=-ffree-line-length-0 $FFLAGS" >> "$GITHUB_ENV" ; \
206+
if test "$FC" = "flang" ; then
207+
echo "FPM_FC=flang-new" >> "$GITHUB_ENV"
208+
elif test "$FC" = "ifx" ; then
209+
echo "FPM_FC=ifx" >> "$GITHUB_ENV"
210+
echo "FFLAGS=-coarray -fpp -g -traceback $FFLAGS" >> "$GITHUB_ENV"
211+
echo "FOR_COARRAY_NUM_IMAGES=4" >> "$GITHUB_ENV"
212+
: echo "FOR_COARRAY_DEBUG_STARTUP=1" >> "$GITHUB_ENV"
213+
: echo "FOR_COARRAY_MPI_VERBOSE=1" >> "$GITHUB_ENV"
214+
elif test "$FC" = "lfortran" ; then
215+
echo "FPM_FC=lfortran" >> "$GITHUB_ENV"
216+
echo "FFLAGS=--cpp --separate-compilation --realloc-lhs-arrays $FFLAGS" >> "$GITHUB_ENV"
217+
echo "FPM_FLAGS=--profile debug --verbose" >> "$GITHUB_ENV" ; : fpm 0.13 workaround
218+
else
219+
echo "FPM_FC=gfortran-${COMPILER_VERSION}" >> "$GITHUB_ENV"
220+
echo "FFLAGS=-ffree-line-length-0 $FFLAGS" >> "$GITHUB_ENV"
230221
fi
231-
if [[ "${{ matrix.container }}" =~ "snowstep/llvm" ]] ; then \
232-
echo "LD_LIBRARY_PATH=/usr/lib/llvm-22/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" ; \
233-
fi
234-
if test -n "${{ matrix.error_stop_code }}" ; then \
235-
echo "ERROR_STOP_CODE=${{ matrix.error_stop_code }}" >> "$GITHUB_ENV" ; \
236-
else \
237-
echo "ERROR_STOP_CODE=1" >> "$GITHUB_ENV" ; \
222+
if [[ "${{ matrix.container }}" =~ "snowstep/llvm" ]] ; then
223+
echo "LD_LIBRARY_PATH=/usr/lib/llvm-22/lib:$LD_LIBRARY_PATH" >> "$GITHUB_ENV"
238224
fi
239225
240226
- name: Setup FPM
@@ -246,7 +232,6 @@ jobs:
246232
- name: Build FPM
247233
if: false
248234
run: |
249-
set -x
250235
export FPM_VERSION=0.12.0
251236
curl --retry 5 -LOsS https://github.com/fortran-lang/fpm/releases/download/v$FPM_VERSION/fpm-$FPM_VERSION.F90
252237
mkdir fpm-temp
@@ -255,6 +240,7 @@ jobs:
255240
256241
- name: Version info
257242
run: |
243+
set +x
258244
echo == TOOL VERSIONS ==
259245
echo Platform version info:
260246
uname -a
@@ -268,20 +254,17 @@ jobs:
268254
269255
- name: Build and Test (Assertions OFF)
270256
run: |
271-
set -x
272257
fpm test ${FPM_FLAGS} --flag "$FFLAGS"
273258
274259
- name: Build and Test (Assertions ON)
275260
env:
276261
FPM_FLAGS: ${{ env.FPM_FLAGS }} --flag -DASSERTIONS
277262
run: |
278-
set -x
279263
fpm test ${FPM_FLAGS} --flag "$FFLAGS"
280264
281265
- name: Test w/ Parallel Callbacks
282266
env:
283267
FPM_FLAGS: ${{ env.FPM_FLAGS }} --flag -DJULIENNE_PARALLEL_CALLBACKS --flag -DTEST_PARALLEL_CALLBACKS
284268
run: |
285-
set -x
286269
fpm test ${FPM_FLAGS} --flag "$FFLAGS"
287270

0 commit comments

Comments
 (0)