From a6c398917207520f7bc42f37b4ea3cda899c90b7 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Fri, 8 May 2026 20:49:19 -0700 Subject: [PATCH 1/7] CI: Factor set -x --- .github/workflows/build.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42441584..af8c6dc7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: runs-on: ${{ matrix.os }} defaults: run: - shell: bash + shell: bash --noprofile --norc -e -x -o pipefail {0} strategy: fail-fast: false matrix: @@ -118,7 +118,6 @@ jobs: - name: Install Ubuntu Native Dependencies if: ${{ contains(matrix.os, 'ubuntu') && matrix.container == '' && matrix.compiler == 'gcc' }} run: | - set -x sudo apt update #sudo apt list -a 'gcc-*' sudo apt install -y build-essential @@ -143,28 +142,24 @@ jobs: - name: Install Ubuntu Container Dependencies if: ${{ contains(matrix.os, 'ubuntu') && matrix.container != '' && !contains(matrix.container, 'phhargrove') }} run: | - set -x apt update apt install -y build-essential # pkg-config make git curl - name: Install macOS Dependencies if: contains(matrix.os, 'macos') && matrix.version == '12' run: | - set -x brew update brew install gcc@12 - name: Install LLVM on macOS if: contains(matrix.os, 'macos') && matrix.compiler == 'clang' run: | - set -x brew install llvm@${COMPILER_VERSION} # Prepend homebrew clang to PATH: echo "PATH=$(brew --prefix)/opt/llvm/bin:${PATH}" >> "$GITHUB_ENV" - name: Setup Compilers run: | - set -x if test "$CC" = "clang" ; then echo "CXX=clang++" >> "$GITHUB_ENV" elif test "$CC" = "icx" ; then @@ -181,6 +176,7 @@ jobs: - name: Version info run: | + set +x echo == TOOL VERSIONS == echo Platform version info: uname -a @@ -194,27 +190,22 @@ jobs: - name: configure run: | - set -x ./configure --prefix=$PWD/inst ${CONFIGURE_ARGS} - name: make all run: | - set -x make all - name: make install run: | - set -x make install - name: make test_install run: | - set -x make test_install - name: make check run: | - set -x make check From 4be830beaaf38228754b32fb0c6f6583565e3b6a Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Fri, 8 May 2026 21:04:30 -0700 Subject: [PATCH 2/7] CI: Excise superfluous continuations --- .github/workflows/build.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af8c6dc7..25637327 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -121,22 +121,22 @@ jobs: sudo apt update #sudo apt list -a 'gcc-*' sudo apt install -y build-essential - if (( ${COMPILER_VERSION} < 15 )) ; then \ - sudo apt install -y gcc-${COMPILER_VERSION} ; \ - else \ - curl -L https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh ; \ - chmod +x install-homebrew.sh ; \ - env CI=1 ./install-homebrew.sh ; \ - HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew" ; \ - ${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils ; \ - ls -al ${HOMEBREW_PREFIX}/bin ; \ - echo "PATH=${HOMEBREW_PREFIX}/bin:${PATH}" >> "$GITHUB_ENV" ; \ - : Homebrew GCC@15 needs binutils 2.44+ ; \ - HOMEBREW_BINUTILS=$(ls -d ${HOMEBREW_PREFIX}/Cellar/binutils/2.*/bin ) ; \ - ls -al ${HOMEBREW_BINUTILS} ; \ - echo "FFLAGS=$FFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \ - echo "CFLAGS=$CFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \ - echo "CXXFLAGS=$CXXFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" ; \ + if (( ${COMPILER_VERSION} < 15 )) ; then + sudo apt install -y gcc-${COMPILER_VERSION} + else + curl -L https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh + chmod +x install-homebrew.sh + env CI=1 ./install-homebrew.sh + HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew" + ${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils + ls -al ${HOMEBREW_PREFIX}/bin + echo "PATH=${HOMEBREW_PREFIX}/bin:${PATH}" >> "$GITHUB_ENV" + : Homebrew GCC@15 needs binutils 2.44+ + HOMEBREW_BINUTILS=$(ls -d ${HOMEBREW_PREFIX}/Cellar/binutils/2.*/bin ) + ls -al ${HOMEBREW_BINUTILS} + echo "FFLAGS=$FFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" + echo "CFLAGS=$CFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" + echo "CXXFLAGS=$CXXFLAGS -B ${HOMEBREW_BINUTILS}" >> "$GITHUB_ENV" fi - name: Install Ubuntu Container Dependencies From d7a758fa98eabbbc601d594a736e021f4a072f99 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Mon, 11 May 2026 13:42:12 -0700 Subject: [PATCH 3/7] CI: Add basic workflow_dispatch support This is not intended to be exhaustive, just a starting point for possible future expansion. Add a few other misc features --- .github/workflows/build.yml | 42 +++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 25637327..bb98c44b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build +name: Smoke Test on: push: @@ -12,10 +12,21 @@ on: - '**.md' pull_request: paths-ignore: *paths_ignore + workflow_dispatch: + inputs: + configure_args: + description: 'Additional configure arguments' + type: string + required: false + env_vars: + description: 'Environment variable settings' + type: string + default: 'GASNET_STATSFILE=- GASNET_MALLOC_INIT=1' + required: false concurrency: # De-duplicate concurrent workflow runs on the same branch/ref - group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}-${{ ( github.event_name == 'workflow_dispatch' && github.run_id ) || 'auto' }} cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.ref != 'refs/heads/develop' }} jobs: @@ -105,11 +116,14 @@ jobs: COMPILER_VERSION: ${{ matrix.version }} CC: ${{ matrix.compiler }} CFLAGS: ${{ matrix.extra_flags }} - CONFIGURE_ARGS: --disable-mpi-compat --enable-rpath + CONFIGURE_ARGS: --disable-mpi-compat --enable-rpath ${{ inputs.configure_args }} GASNET_BACKTRACE: 1 GASNET_SPAWN_VERBOSE: 1 GASNET_SPAWNFN: L GASNET_MASTERIP: 127.0.0.1 + UPCXX_VERBOSE: 1 + RANKS: 4 + MAKE_FLAGS: -j 4 steps: - name: Checkout code @@ -174,15 +188,22 @@ jobs: fi fi + - name: Set Workflow Dispatch Environment + if: github.event_name == 'workflow_dispatch' + run: | + for setting in ${{ inputs.env_vars }}; do + echo $setting >> "$GITHUB_ENV" + done + - name: Version info run: | set +x - echo == TOOL VERSIONS == - echo Platform version info: + echo == Platform version info == uname -a if test -r /etc/os-release ; then grep -e NAME -e VERSION /etc/os-release ; fi if test -x /usr/bin/sw_vers ; then /usr/bin/sw_vers ; fi echo + echo == Tool version info == echo PATH="$PATH" for tool in ${CC} ${CXX} make ; do ( echo ; set -x ; w=$(which $tool) ; ls -al $w ; ls -alhL $w ; $tool --version ) @@ -194,18 +215,21 @@ jobs: - name: make all run: | - make all + make ${MAKE_FLAGS} all - name: make install run: | - make install + make ${MAKE_FLAGS} install - name: make test_install run: | - make test_install + make ${MAKE_FLAGS} test_install - name: make check run: | - make check + if [[ ${RANKS} > 2 ]] ; then + export GASNET_SUPERNODE_MAXSIZE=2 + fi + make ${MAKE_FLAGS} check From a43f6ad935c7eb6437a45e9816b2d6083b477687 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Tue, 12 May 2026 08:47:06 -0700 Subject: [PATCH 4/7] CI: Add a run-name for workflow_dispatch --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bb98c44b..803b0d7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,5 @@ name: Smoke Test +run-name: ${{ github.event_name == 'workflow_dispatch' && 'Manual:' || '' }} ${{ inputs.run_name }} on: push: @@ -14,6 +15,10 @@ on: paths-ignore: *paths_ignore workflow_dispatch: inputs: + run_name: + description: 'Descriptive name for this run' + type: string + required: false configure_args: description: 'Additional configure arguments' type: string From 28877c338388ea4622b994e29c4df787933a8ef9 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Tue, 12 May 2026 12:28:32 -0700 Subject: [PATCH 5/7] CI: Improve GASNET_SUPERNODE_MAXSIZE handling * Don't overwrite a user-provided setting * Default to 1 instead of infinite --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 803b0d7f..b6b44209 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -232,8 +232,12 @@ jobs: - name: make check run: | - if [[ ${RANKS} > 2 ]] ; then - export GASNET_SUPERNODE_MAXSIZE=2 + if [[ -z "$GASNET_SUPERNODE_MAXSIZE" ]] ; then + if [[ ${RANKS} > 2 ]] ; then + export GASNET_SUPERNODE_MAXSIZE=2 + else + export GASNET_SUPERNODE_MAXSIZE=1 + fi fi make ${MAKE_FLAGS} check From 065e4cc4487a22c3f708507e6e836309d751ad7a Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Tue, 12 May 2026 20:10:31 -0700 Subject: [PATCH 6/7] CI: Change the default envvars for dispatch GASNET_STATSFILE=- is pretty unreadable in the logs More importantly, providing a non-empty string default has the unintuitive behavior that clearing it out results in the default being applied! --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6b44209..19a968cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ on: env_vars: description: 'Environment variable settings' type: string - default: 'GASNET_STATSFILE=- GASNET_MALLOC_INIT=1' + default: '' required: false concurrency: From ec075924c4bb8730d6c42a030814d3a35fd9795a Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Tue, 12 May 2026 20:49:31 -0700 Subject: [PATCH 7/7] CI: Increase /dev/shm size for containers The docker default of 64MiB is too small and was causing crashes in some runs. Add /dev/shm size to Version Info step --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 19a968cd..75fb20db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -116,6 +116,7 @@ jobs: container: image: ${{ matrix.container }} + options: --shm-size=2gb env: COMPILER_VERSION: ${{ matrix.version }} @@ -207,6 +208,7 @@ jobs: uname -a if test -r /etc/os-release ; then grep -e NAME -e VERSION /etc/os-release ; fi if test -x /usr/bin/sw_vers ; then /usr/bin/sw_vers ; fi + if test -d /dev/shm ; then df -h /dev/shm ; fi echo echo == Tool version info == echo PATH="$PATH"