@@ -16,7 +16,7 @@ concurrency:
1616
1717defaults :
1818 run :
19- shell : bash
19+ shell : bash --noprofile --norc -e -x -o pipefail {0}
2020
2121jobs :
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