From 55dedb6ff80c468f70ff9bb24e4673485dc3b769 Mon Sep 17 00:00:00 2001 From: e-perl-NOAA Date: Mon, 6 Oct 2025 16:51:21 -0400 Subject: [PATCH 1/4] macos-13 will no longer be kept up by github actions, so switch to macos-latest-large which has the x86_64 (Intel) architecture --- .../build-admb-and-ss3-from-source.yml | 26 +++++++++---------- .github/workflows/build-ss3.yml | 26 +++++++++---------- .../test-simple-with-ss3-artifacts.yml | 6 ++--- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build-admb-and-ss3-from-source.yml b/.github/workflows/build-admb-and-ss3-from-source.yml index 9eef1d13..49bb9a3b 100644 --- a/.github/workflows/build-admb-and-ss3-from-source.yml +++ b/.github/workflows/build-admb-and-ss3-from-source.yml @@ -18,7 +18,7 @@ jobs: config: - {os: windows-latest} - {os: macos-latest} - - {os: macos-13} + - {os: macos-latest-large} - {os: ubuntu-latest} # Limit run time to 90 min to avoid wasting action minutes. # Compiling admb and ss3 on all operating systems takes ~30 min @@ -29,11 +29,11 @@ jobs: - uses: actions/checkout@v5 - name: Update Homebrew - if: matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest-large' run: brew update - name: Install qpdf - if: matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest-large' run: brew install qpdf # Set up R @@ -69,27 +69,27 @@ jobs: # Build ADMB for macOS - name: Clean, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: cd admb && make clean - name: See where admb is, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | ls cd admb && ls - name: Compile admb, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | cd admb && make -j 4 # - name: See where admb is, mac - # if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + # if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' # run: | # cd admb && ls -l - name: Change permissions of admb and put in path, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | sudo mv admb /usr/local/bin sudo chmod 755 /usr/local/bin/admb @@ -140,7 +140,7 @@ jobs: - name: Get the last tag on unix (macOS and linux) id: get-latest-tag-unix - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' || matrix.config.os == 'ubuntu-latest' run: | git tag latest_tag=$(git describe --abbrev=0 --tags) @@ -152,7 +152,7 @@ jobs: - name: Pull the last tag value to use in the Rscript on unix (macOS and linux) id: get-version-unix - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' || matrix.config.os == 'ubuntu-latest' run: | echo "${{ steps.get-latest-tag-unix.outputs.tag }}" > .github/last_tag.txt echo "${{ steps.get-latest-tag-unix.outputs.tag_commit }}" > .github/last_tag_commit.txt @@ -244,7 +244,7 @@ jobs: # Build SS3 for macOS - name: Build stock synthesis for macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | rm -rf SS330 rm -rf ss3_osx.tar @@ -254,13 +254,13 @@ jobs: /bin/bash ./Make_SS_330_new.sh -b SS330 -o - name: Verify binary on macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | shasum -a 256 SS330/ss3 shasum -a 256 SS330/ss3_opt - name: Delete unnecessary files and change exe names on macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' run: | cd SS330 rm *.obj *.htp *.cpp ss3_opt.tpl diff --git a/.github/workflows/build-ss3.yml b/.github/workflows/build-ss3.yml index ef9b34c6..f70e9586 100644 --- a/.github/workflows/build-ss3.yml +++ b/.github/workflows/build-ss3.yml @@ -27,7 +27,7 @@ jobs: matrix: config: - {os: windows-latest} - - {os: macos-13} + - {os: macos-latest-large} - {os: macos-latest} - {os: ubuntu-latest} # Limit run time to 90 min to avoid wasting action minutes. @@ -43,7 +43,7 @@ jobs: repository: 'nmfs-ost/ss3-source-code' # Checkout ADMB repository - - name: Checkout admb for macos-13 build + - name: Checkout admb for macos-latest-large build uses: actions/checkout@v5 with: repository: admb-project/admb @@ -62,21 +62,21 @@ jobs: git fetch --tags git fetch --prune --unshallow || true - # Build ADMB for macos-13 - - name: Build ADMB for macos-13 and put in path - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + # Build ADMB for macos-latest-large + - name: Build ADMB for macos-latest-large and put in path + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | cd admb && make clean - name: See where admb is - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | cd admb && ls - name: Compile admb, macOS - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | cd admb && make -j 4 - name: Change permissions of admb and put in path, macOS - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | sudo mv admb /usr/local/bin sudo chmod 755 /usr/local/bin/admb @@ -104,7 +104,7 @@ jobs: - name: Get the last tag on unix (macOS and linux) id: get-latest-tag-unix - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' run: | git tag latest_tag=$(git describe --abbrev=0 --tags) @@ -116,7 +116,7 @@ jobs: - name: Pull the last tag value to use in the Rscript on unix (macOS and linux) id: get-version-unix - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' run: | echo "${{ steps.get-latest-tag-unix.outputs.tag }}" > .github/last_tag.txt echo "${{ steps.get-latest-tag-unix.outputs.tag_commit }}" > .github/last_tag_commit.txt @@ -205,7 +205,7 @@ jobs: mv SS330/ss3_opt.exe SS330/ss3_opt_win.exe - name: Build stock synthesis for mac with admb from source - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | rm -rf SS330 rm -rf ss3_osx.tar @@ -231,13 +231,13 @@ jobs: # /bin/bash ./Make_SS_330_new.sh --admb docker -b SS330 -o - name: Verify binary on mac - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | shasum -a 256 SS330/ss3 shasum -a 256 SS330/ss3_opt - name: Delete unneeded files and change exe names on mac - if: matrix.config.os == 'macos-13' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' run: | cd SS330 rm *.obj *.htp *.cpp ss3_opt.tpl ss3.tpl diff --git a/.github/workflows/test-simple-with-ss3-artifacts.yml b/.github/workflows/test-simple-with-ss3-artifacts.yml index 1c333c11..b2def5ce 100644 --- a/.github/workflows/test-simple-with-ss3-artifacts.yml +++ b/.github/workflows/test-simple-with-ss3-artifacts.yml @@ -28,13 +28,13 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-13, macos-latest, windows-latest] + os: [ubuntu-latest, macos-latest-large, macos-latest, windows-latest] include: - os: ubuntu-latest artifact_name: ss3-ubuntu-latest exe: ss3_linux - - os: macos-13 - artifact_name: ss3-macos-13 + - os: macos-latest-large + artifact_name: ss3-macos-latest-large exe: ss3_osx - os: macos-latest artifact_name: ss3-macos-latest From 858ac67e4b77686a52480925985aa194d78ef9d5 Mon Sep 17 00:00:00 2001 From: e-perl-NOAA Date: Mon, 6 Oct 2025 17:10:48 -0400 Subject: [PATCH 2/4] add push trigger to make sure workflows actually work --- .github/workflows/build-admb-and-ss3-from-source.yml | 1 + .github/workflows/build-ss3.yml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-admb-and-ss3-from-source.yml b/.github/workflows/build-admb-and-ss3-from-source.yml index 49bb9a3b..79f01de3 100644 --- a/.github/workflows/build-admb-and-ss3-from-source.yml +++ b/.github/workflows/build-admb-and-ss3-from-source.yml @@ -6,6 +6,7 @@ name: build-admb-and-ss3-from-source on: workflow_dispatch: + push: schedule: - cron: '0 15 * * 2' # every Tuesday at 3pm UTC (= 1 0am EST or 11am EDT Eastern time) jobs: diff --git a/.github/workflows/build-ss3.yml b/.github/workflows/build-ss3.yml index f70e9586..3d446d49 100644 --- a/.github/workflows/build-ss3.yml +++ b/.github/workflows/build-ss3.yml @@ -5,9 +5,9 @@ name: build-ss3 on: push: - paths: - - '**.tpl' - - '**.sh' + # paths: + # - '**.tpl' + # - '**.sh' pull_request: paths: - '**.tpl' From 28b100e16ea1b085486e56818db65b545f358c11 Mon Sep 17 00:00:00 2001 From: e-perl-NOAA Date: Mon, 6 Oct 2025 17:17:19 -0400 Subject: [PATCH 3/4] try with macos-15-intel since macos-latest-large failed for some reason --- .../build-admb-and-ss3-from-source.yml | 26 +++++++++---------- .github/workflows/build-ss3.yml | 26 +++++++++---------- .../test-simple-with-ss3-artifacts.yml | 6 ++--- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build-admb-and-ss3-from-source.yml b/.github/workflows/build-admb-and-ss3-from-source.yml index 79f01de3..62afdfec 100644 --- a/.github/workflows/build-admb-and-ss3-from-source.yml +++ b/.github/workflows/build-admb-and-ss3-from-source.yml @@ -19,7 +19,7 @@ jobs: config: - {os: windows-latest} - {os: macos-latest} - - {os: macos-latest-large} + - {os: macos-15-intel} - {os: ubuntu-latest} # Limit run time to 90 min to avoid wasting action minutes. # Compiling admb and ss3 on all operating systems takes ~30 min @@ -30,11 +30,11 @@ jobs: - uses: actions/checkout@v5 - name: Update Homebrew - if: matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-15-intel' run: brew update - name: Install qpdf - if: matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-15-intel' run: brew install qpdf # Set up R @@ -70,27 +70,27 @@ jobs: # Build ADMB for macOS - name: Clean, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: cd admb && make clean - name: See where admb is, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | ls cd admb && ls - name: Compile admb, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | cd admb && make -j 4 # - name: See where admb is, mac - # if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + # if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' # run: | # cd admb && ls -l - name: Change permissions of admb and put in path, macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | sudo mv admb /usr/local/bin sudo chmod 755 /usr/local/bin/admb @@ -141,7 +141,7 @@ jobs: - name: Get the last tag on unix (macOS and linux) id: get-latest-tag-unix - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' || matrix.config.os == 'ubuntu-latest' run: | git tag latest_tag=$(git describe --abbrev=0 --tags) @@ -153,7 +153,7 @@ jobs: - name: Pull the last tag value to use in the Rscript on unix (macOS and linux) id: get-version-unix - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' || matrix.config.os == 'ubuntu-latest' run: | echo "${{ steps.get-latest-tag-unix.outputs.tag }}" > .github/last_tag.txt echo "${{ steps.get-latest-tag-unix.outputs.tag_commit }}" > .github/last_tag_commit.txt @@ -245,7 +245,7 @@ jobs: # Build SS3 for macOS - name: Build stock synthesis for macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | rm -rf SS330 rm -rf ss3_osx.tar @@ -255,13 +255,13 @@ jobs: /bin/bash ./Make_SS_330_new.sh -b SS330 -o - name: Verify binary on macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | shasum -a 256 SS330/ss3 shasum -a 256 SS330/ss3_opt - name: Delete unnecessary files and change exe names on macOS - if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-latest-large' + if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-15-intel' run: | cd SS330 rm *.obj *.htp *.cpp ss3_opt.tpl diff --git a/.github/workflows/build-ss3.yml b/.github/workflows/build-ss3.yml index 3d446d49..4842a6bc 100644 --- a/.github/workflows/build-ss3.yml +++ b/.github/workflows/build-ss3.yml @@ -27,7 +27,7 @@ jobs: matrix: config: - {os: windows-latest} - - {os: macos-latest-large} + - {os: macos-15-intel} - {os: macos-latest} - {os: ubuntu-latest} # Limit run time to 90 min to avoid wasting action minutes. @@ -43,7 +43,7 @@ jobs: repository: 'nmfs-ost/ss3-source-code' # Checkout ADMB repository - - name: Checkout admb for macos-latest-large build + - name: Checkout admb for macos-15-intel build uses: actions/checkout@v5 with: repository: admb-project/admb @@ -62,21 +62,21 @@ jobs: git fetch --tags git fetch --prune --unshallow || true - # Build ADMB for macos-latest-large - - name: Build ADMB for macos-latest-large and put in path - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + # Build ADMB for macos-15-intel + - name: Build ADMB for macos-15-intel and put in path + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | cd admb && make clean - name: See where admb is - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | cd admb && ls - name: Compile admb, macOS - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | cd admb && make -j 4 - name: Change permissions of admb and put in path, macOS - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | sudo mv admb /usr/local/bin sudo chmod 755 /usr/local/bin/admb @@ -104,7 +104,7 @@ jobs: - name: Get the last tag on unix (macOS and linux) id: get-latest-tag-unix - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' run: | git tag latest_tag=$(git describe --abbrev=0 --tags) @@ -116,7 +116,7 @@ jobs: - name: Pull the last tag value to use in the Rscript on unix (macOS and linux) id: get-version-unix - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' || matrix.config.os == 'ubuntu-latest' run: | echo "${{ steps.get-latest-tag-unix.outputs.tag }}" > .github/last_tag.txt echo "${{ steps.get-latest-tag-unix.outputs.tag_commit }}" > .github/last_tag_commit.txt @@ -205,7 +205,7 @@ jobs: mv SS330/ss3_opt.exe SS330/ss3_opt_win.exe - name: Build stock synthesis for mac with admb from source - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | rm -rf SS330 rm -rf ss3_osx.tar @@ -231,13 +231,13 @@ jobs: # /bin/bash ./Make_SS_330_new.sh --admb docker -b SS330 -o - name: Verify binary on mac - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | shasum -a 256 SS330/ss3 shasum -a 256 SS330/ss3_opt - name: Delete unneeded files and change exe names on mac - if: matrix.config.os == 'macos-latest-large' || matrix.config.os == 'macos-latest' + if: matrix.config.os == 'macos-15-intel' || matrix.config.os == 'macos-latest' run: | cd SS330 rm *.obj *.htp *.cpp ss3_opt.tpl ss3.tpl diff --git a/.github/workflows/test-simple-with-ss3-artifacts.yml b/.github/workflows/test-simple-with-ss3-artifacts.yml index b2def5ce..86866791 100644 --- a/.github/workflows/test-simple-with-ss3-artifacts.yml +++ b/.github/workflows/test-simple-with-ss3-artifacts.yml @@ -28,13 +28,13 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest-large, macos-latest, windows-latest] + os: [ubuntu-latest, macos-15-intel, macos-latest, windows-latest] include: - os: ubuntu-latest artifact_name: ss3-ubuntu-latest exe: ss3_linux - - os: macos-latest-large - artifact_name: ss3-macos-latest-large + - os: macos-15-intel + artifact_name: ss3-macos-15-intel exe: ss3_osx - os: macos-latest artifact_name: ss3-macos-latest From ce99e4f814ddf42f64d999a11aaff1bc46430e78 Mon Sep 17 00:00:00 2001 From: e-perl-NOAA Date: Tue, 7 Oct 2025 09:40:50 -0400 Subject: [PATCH 4/4] remove --- .github/workflows/build-admb-and-ss3-from-source.yml | 3 +-- .github/workflows/build-ss3.yml | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-admb-and-ss3-from-source.yml b/.github/workflows/build-admb-and-ss3-from-source.yml index 62afdfec..93fa1a99 100644 --- a/.github/workflows/build-admb-and-ss3-from-source.yml +++ b/.github/workflows/build-admb-and-ss3-from-source.yml @@ -1,12 +1,11 @@ # Builds admb from source and then builds the stock synthesis executables from source for testing and distribution. -# for macOS 13 (couldn't get this to run on macOS 12), macOS latest (arm64 architecture), linux, Windows +# for macOS x86_64, macOS latest (arm64 architecture), linux, Windows # Runs on a scheduled basis weekly to ensure that this workflow will work IF the build-ss3.yml workflow stops # working due to issues with the admb docker image. name: build-admb-and-ss3-from-source on: workflow_dispatch: - push: schedule: - cron: '0 15 * * 2' # every Tuesday at 3pm UTC (= 1 0am EST or 11am EDT Eastern time) jobs: diff --git a/.github/workflows/build-ss3.yml b/.github/workflows/build-ss3.yml index 4842a6bc..aa4f86d2 100644 --- a/.github/workflows/build-ss3.yml +++ b/.github/workflows/build-ss3.yml @@ -1,13 +1,13 @@ # Builds the stock synthesis executables for testing and distribution using the admb docker image. -# for macOS 12, and macos-14 (arm64 architecture), linux, Windows +# for macOS x86_64, and macos-latest, linux, Windows # Runs on every push and PR (even draft PRs) name: build-ss3 on: push: - # paths: - # - '**.tpl' - # - '**.sh' + paths: + - '**.tpl' + - '**.sh' pull_request: paths: - '**.tpl'