Skip to content

Commit cd180df

Browse files
committed
Merge branch 'main' into try-vscode-merge-from-main
2 parents 95be4a1 + d11d414 commit cd180df

27 files changed

+1603
-2097
lines changed

.github/ISSUE_TEMPLATE/ss3-release-template.md

+14-11
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ assignees:
88
- chantelwetzel-noaa
99
- iantaylor-NOAA
1010
- kellijohnson-NOAA
11-
- e-gugliotti-NOAA
11+
- shcaba
12+
- e-perl-NOAA
1213
---
1314

1415
# Release checklist
@@ -25,19 +26,21 @@ assignees:
2526
- [ ] Announce prerelease (RM)
2627

2728
## Checklist for before release
28-
- [ ] Manual updated and tagged in repo (EG) - address at least issues with the [`v3.30.xx` release label](add correct link to GitHub issues using filter: is:issue is:open label:"3.30.xx release" when available)
29-
- [ ] Manual added to a GitHub release, include attaching a pdf version (EG)
30-
- [ ] Manual release version on website updated once pdf and html built (EG) (update https://github.com/nmfs-ost/ss3-doc/blob/main/docs/SS330_User_Manual_release.html to the `v3.30.xx` version; update links to link to `v3.30.xx` in https://github.com/nmfs-ost/ss3-doc/blob/main/docs/index.md#links-to-documentation)
29+
- [ ] The following steps should be encompassed in the new manual [release workflow](https://github.com/nmfs-ost/ss3-doc/actions/workflows/release.yml) and [bug fix release workflow](https://github.com/nmfs-ost/ss3-doc/actions/workflows/release_bug_fix.yml) and can be deleted at a future time once the new manual release workflows have been used for a couple releases (EP).
30+
- [ ] Manual updated and tagged in repo (EP) - address at least issues with the [`v3.30.xx` release label](add correct link to GitHub issues using filter: is:issue is:open label:"3.30.xx release" when available)
31+
- [ ] Manual added to a GitHub release, include attaching a pdf version (EP)
32+
- [ ] Manual release version on website updated once pdf and html built (EP) (update https://github.com/nmfs-ost/ss3-doc/blob/main/docs/SS330_User_Manual_release.html to the `v3.30.xx` version; update links to link to `v3.30.xx` in https://github.com/nmfs-ost/ss3-doc/blob/main/docs/index.md#links-to-documentation)
3133
- [ ] Make changes to SS3 if any bugs caught in prerelease (RM)
3234
- [ ] [Change log project board](https://github.com/orgs/nmfs-ost/projects/11) updated with any issues labelled "change log" (RM)
33-
- [ ] Code committed and tagged in repo as `v3.30.xx`, which will trigger a GHA to build the release executables (EG) (Instructions on [how to push a a local tag to a remote](https://github.com/nmfs-ost/ss3-source-code/wiki/Stock-Synthesis:-practices-for-maintainers#how-to-push-a-local-tag-up-to-github))
34-
- [ ] Exe and .tpl archived on [Google drive](https://drive.google.com/drive/folders/1Gh_dXi8v3rqawpwn2N6yaaEXZPq6G2io) (EG)
35-
- [ ] All exes added to GitHub releases as `v3.30.xx` (EG) (get exes in the artifacts of the GHA that built the release exes)
36-
- [ ] Send out release announcement msg (RM)
37-
- [ ] Add to release discussion on GitHub repository (EG)
35+
- [ ] Code committed and tagged in repo as `v3.30.xx`, which will trigger a GHA to build the release executables (EP) (Instructions on [how to push a a local tag to a remote](https://github.com/nmfs-ost/ss3-source-code/wiki/Stock-Synthesis:-practices-for-maintainers#how-to-push-a-local-tag-up-to-github))
36+
- [ ] Exe and .tpl archived on [Google drive](https://drive.google.com/drive/folders/1Gh_dXi8v3rqawpwn2N6yaaEXZPq6G2io) (EP)
37+
- [ ] All exes added to GitHub releases as `v3.30.xx` (EP) (get exes in the artifacts of the GHA that built the release exes)
38+
- [ ] Send out release announcement message to the [SS3 forum](https://groups.google.com/g/ss3-forum) (RM)
39+
- [ ] Add to release discussion on GitHub repository (EP)
3840

3941
## Checklist for after release
40-
- [ ] Update user-example models using [this github action](https://github.com/nmfs-ost/ss3-user-examples/blob/main/R/update_examples.R) and tag with new release number after updating (EG)
41-
- [ ] Update test models using [this github action](https://github.com/nmfs-ost/ss3-test-models/actions/workflows/update-ss3-models.yml) and tag with new release number after updating (EG)
42+
- [ ] Update user-example models using [this github action](https://github.com/nmfs-ost/ss3-user-examples/blob/main/R/update_examples.R) and tag with new release number after updating (EP)
43+
- [ ] Update test models using [this github action](https://github.com/nmfs-ost/ss3-test-models/actions/workflows/update-ss3-models.yml) and tag with new release number after updating (EP)
44+
- [ ] Update executables in the [SAC tool](https://github.com/shcaba/SS-DL-tool) (also suggest updating the input files to the .ss_new files (EP/JC)
4245
- [ ] Removed "resolved" tag and close all issues worked in the milestone for this release (RM)
4346
- [ ] Move unworked issues for the release milestone to the next milestone (RM)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: add-exe-build-artifacts-to-PR
2+
on:
3+
workflow_run:
4+
workflows: [build-ss3]
5+
types: [completed]
6+
workflow_dispatch:
7+
8+
jobs:
9+
artifacts-url-comments:
10+
name: add artifact links to pull request and related issues job
11+
runs-on: ubuntu-latest
12+
if: ${{ github.event.workflow_run.conclusion == 'success'}}
13+
steps:
14+
- name: add artifact links to PR and issues
15+
uses: tonyhallett/[email protected]
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
with:
19+
prefix: 'Here are the successful executable builds from your PR:'
20+
format: name
21+
addTo: pullandissues

.github/workflows/build-admb-and-ss3-from-source.yml

+37-36
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
# Builds the stock synthesis executables for testing and distribution.
2-
# for mac, linux, windows
3-
# Runs on every push and PR (even draft PRs)
1+
# Builds admb from source and then builds the stock synthesis executables from source for testing and distribution.
2+
# for macOS 13 (couldn't get this to run on macOS 12), macOS latest (arm64 architecture), linux, Windows
3+
# Runs on a scheduled basis weekly to ensure that this workflow will work IF the build-ss3.yml workflow stops
4+
# working due to issues with the admb docker image.
45
name: build-admb-and-ss3-from-source
56

67
on:
@@ -16,7 +17,7 @@ jobs:
1617
matrix:
1718
config:
1819
- {os: windows-latest}
19-
- {os: macos-14}
20+
- {os: macos-latest}
2021
- {os: macos-13}
2122
- {os: ubuntu-latest}
2223
# Limit run time to 90 min to avoid wasting action minutes.
@@ -28,7 +29,7 @@ jobs:
2829
- uses: actions/checkout@v4
2930

3031
# Set up R
31-
- name: Set up R, specify rtools version and path for windows
32+
- name: Set up R, specify rtools version and path for Windows
3233
uses: r-lib/actions/setup-r@v2
3334
with:
3435
r-version: 'release'
@@ -37,50 +38,50 @@ jobs:
3738
update-rtools: TRUE
3839

3940
# Checkout ADMB repository
40-
- name: checkout admb and build from source, windows
41+
- name: Checkout admb
4142
uses: actions/checkout@v4
4243
with:
4344
repository: admb-project/admb
4445
path: admb
4546
ref: admb-13.2
4647

4748
# Build ADMB for Windows
48-
- name: build admb, windows using rtools 42
49+
- name: Build admb for Windows using rtools 42
4950
if: matrix.config.os == 'windows-latest'
5051
run: |
5152
cd admb
5253
make -j 4
5354
shell: cmd
5455

55-
- name: But admb in path
56+
- name: Put admb in path, Windows
5657
if: matrix.config.os == 'windows-latest'
5758
run: |
5859
echo "D:\a\ss3-source-code\ss3-source-code\admb\build\admb\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
5960
echo $env:GITHUB_PATH
6061
6162
# Build ADMB for macOS
62-
- name: clean, mac
63-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
63+
- name: Clean, macOS
64+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
6465
run: cd admb && make clean
6566

66-
- name: see where admb is, mac
67-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
67+
- name: See where admb is, macOS
68+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
6869
run: |
6970
ls
7071
cd admb && ls
7172
72-
- name: compile admb, mac
73-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
73+
- name: Compile admb, macOS
74+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
7475
run: |
7576
cd admb && make -j 4
7677
77-
- name: see where admb is, mac
78-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
79-
run: |
80-
cd admb && ls -l
78+
# - name: See where admb is, mac
79+
# if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
80+
# run: |
81+
# cd admb && ls -l
8182

82-
- name: put admb in path, mac
83-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
83+
- name: Change permissions of admb and put in path, macOS
84+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
8485
run: |
8586
sudo mv admb /usr/local/bin
8687
sudo chmod 755 /usr/local/bin/admb
@@ -91,7 +92,7 @@ jobs:
9192
if: matrix.config.os == 'ubuntu-latest'
9293
run: sudo apt-get update
9394

94-
- name: Get admb and put in path, linux
95+
- name: Change permissions of admb and put in path, linux
9596
if: matrix.config.os == 'ubuntu-latest'
9697
run: |
9798
cd admb && make clean
@@ -104,12 +105,12 @@ jobs:
104105
echo "/usr/local/bin/admb" >> $GITHUB_PATH
105106
106107
# Fetch Tags
107-
- name: Fetch tags
108+
- name: Fetch git tags
108109
run: |
109110
git fetch --tags
110111
git fetch --prune --unshallow || true
111112
112-
- name: Get the last tag on windows
113+
- name: Get the last tag on Windows
113114
id: get-latest-tag-win
114115
if: matrix.config.os == 'windows-latest'
115116
run: |
@@ -121,17 +122,17 @@ jobs:
121122
echo "tag_commit=${latest_tag_commit}" >> $env:GITHUB_OUTPUT
122123
echo "commit=${latest_commit}" >> $env:GITHUB_OUTPUT
123124
124-
- name: pull the last tag value to use in the Rscript on windows
125+
- name: Pull the last tag value to use in the Rscript on Windows
125126
id: get-version-win
126127
if: matrix.config.os == 'windows-latest'
127128
run: |
128129
Out-File -InputObject ${{ steps.get-latest-tag-win.outputs.tag }} -FilePath .github/last_tag.txt
129130
Out-File -InputObject ${{ steps.get-latest-tag-win.outputs.tag_commit }} -FilePath .github/last_tag_commit.txt
130131
Out-File -InputObject ${{ steps.get-latest-tag-win.outputs.commit}} -FilePath .github/last_commit.txt
131132
132-
- name: Get the last tag on unix
133+
- name: Get the last tag on unix (macOS and linux)
133134
id: get-latest-tag-unix
134-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest'
135+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest'
135136
run: |
136137
git tag
137138
latest_tag=$(git describe --abbrev=0 --tags)
@@ -141,9 +142,9 @@ jobs:
141142
echo "tag_commit=${latest_tag_commit}" >> $GITHUB_OUTPUT
142143
echo "commit=${latest_commit}" >> $GITHUB_OUTPUT
143144
144-
- name: pull the last tag value to use in the Rscript on unix
145+
- name: Pull the last tag value to use in the Rscript on unix (macOS and linux)
145146
id: get-version-unix
146-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest'
147+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13' || matrix.config.os == 'ubuntu-latest'
147148
run: |
148149
echo "${{ steps.get-latest-tag-unix.outputs.tag }}" > .github/last_tag.txt
149150
echo "${{ steps.get-latest-tag-unix.outputs.tag_commit }}" > .github/last_tag_commit.txt
@@ -215,7 +216,7 @@ jobs:
215216
shell: Rscript {0}
216217

217218
# Build SS3 for Windows
218-
- name: Build stock synthesis for windows with admb docker image
219+
- name: Build stock synthesis for Windows
219220
if: matrix.config.os == 'windows-latest'
220221
run: |
221222
cd Compile
@@ -234,8 +235,8 @@ jobs:
234235
mv SS330/ss3_opt.exe SS330/ss3_opt_win.exe
235236
236237
# Build SS3 for macOS
237-
- name: Build stock synthesis for mac with admb docker image
238-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
238+
- name: Build stock synthesis for macOS
239+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
239240
run: |
240241
rm -rf SS330
241242
rm -rf ss3_osx.tar
@@ -244,22 +245,22 @@ jobs:
244245
/bin/bash ./Make_SS_330_new.sh -b SS330
245246
/bin/bash ./Make_SS_330_new.sh -b SS330 -o
246247
247-
- name: Verify binary on mac
248-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
248+
- name: Verify binary on macOS
249+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
249250
run: |
250251
shasum -a 256 SS330/ss3
251252
shasum -a 256 SS330/ss3_opt
252253
253-
- name: Delete unneeded files and change exe names on mac
254-
if: matrix.config.os == 'macos-14' || matrix.config.os == 'macos-13'
254+
- name: Delete unnecessary files and change exe names on macOS
255+
if: matrix.config.os == 'macos-latest' || matrix.config.os == 'macos-13'
255256
run: |
256257
cd SS330
257258
rm *.obj *.htp *.cpp ss3_opt.tpl
258259
mv ss3 ss3_osx
259260
mv ss3_opt ss3_opt_osx
260261
261262
# Build SS3 for Linux
262-
- name: Build stock synthesis for linux with p flag and admb docker image
263+
- name: Build stock synthesis for linux with p flag
263264
if: matrix.config.os == 'ubuntu-latest'
264265
run: |
265266
rm -rf SS330

.github/workflows/build-ss3-warnings.yml

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
# Build stock synthesis with all c++ compiler warnings, and fail job if the
2-
# number of warnings has increased.
1+
# Build stock synthesis on linux with all c++ compiler warnings, and fail job if the
2+
# number of warnings has increased using the warnings_ss_ref.txt file under
3+
# workflows > reference_files.
4+
# Only runs on a pull request and a push to main if the tpl files have changed
35
name: build-ss3-warnings
46

57
# Controls when the action will run.
@@ -32,7 +34,7 @@ jobs:
3234
- name: Update Ubuntu packages
3335
run: sudo apt-get update
3436

35-
- name: setup R
37+
- name: Setup R
3638
uses: r-lib/actions/setup-r@v2
3739

3840
# - name: Get admb and put in path, linux
@@ -42,15 +44,15 @@ jobs:
4244
# sudo chmod 755 /usr/local/bin/admb-13.1/bin/admb
4345
# echo "/usr/local/bin/admb-13.1/bin" >> $GITHUB_PATH
4446

45-
- name: Build stock synthesis with warnings displayed in console using admb docker image
47+
- name: Build stock synthesis with warnings using admb docker image and display in console
4648
run: |
4749
rm -rf SS330
4850
rm -rf ss3_osx.tar
4951
mkdir SS330
5052
chmod 777 SS330
5153
/bin/bash ./Make_SS_330_new.sh --admb docker -b SS330 -w
5254
53-
- name: Build stock synthesis with warnings again to save to file
55+
- name: Build stock synthesis with warnings using admb docker image again to save to file
5456
run: |
5557
rm -rf SS330
5658
rm -rf ss3_osx.tar
@@ -77,10 +79,10 @@ jobs:
7779
# txt <- txt[(warn_line+1):length(txt)]
7880
shell: Rscript {0}
7981

80-
- name: Print warnings
82+
- name: Print warnings
8183
run: cat warnings_ss.txt
8284

83-
- name: determine if fails/passes
85+
- name: Determine if fails/passes based on the number of warnings
8486
run: |
8587
ref <- readLines(".github/workflows/reference_files/warnings_ss_ref.txt")
8688
n_warn <- read.table("n_warn.txt")

0 commit comments

Comments
 (0)