Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Automate building of Windows and macOS release binaries #20

Merged
merged 16 commits into from
Jul 4, 2019

Conversation

letmaik
Copy link

@letmaik letmaik commented May 22, 2019

This extends the Azure Pipelines scripts and adds a new "release" pipeline that when run on a git version tag will build the binaries, store them as build artifacts, and also upload them to a draft GitHub release, that then can be manually published.

Note: Linux is done manually for now and will be added at a later point.

@letmaik letmaik requested a review from dmey May 22, 2019 21:19
rootFolderOrFile: build/install
includeRootFolder: false
archiveType: zip
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.SourceBranchName)-$(MODE)-$(NESTING)-$(BUILD_TYPE)-$(OS_NAME).zip'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure I like the order for these. How about [...]$(BUILD_TYPE)-$(NESTING)-$(MODE)-$(OS_NAME).zip? I would also add an experimental label perhaps before the version name. For nesting, the word basic is a bit confusing as its meaning is not as immediate as it is for the other keywords. Could add basic-nesting but if you do that it may make sense to change the keyword separator to an underscore.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this follows the existing scheme we have. Examples are always better to illustrate things, so let's see...
The original is:
wrf-cmake-4.0-dmpar-basic-release-windows.zip.
Your suggestion:
wrf-cmake-4.0-release-basic_nesting-dmpar-windows.zip.
Hm, I'm not a fan of that. The idea was to group WRF-specific markers (nesting, mode) followed by generic markers (build type, os), in this order since the OS typically comes last.
So, I would leave the ordering, but I'm open to add _nesting to make it more clear what that means.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK with_nesting but not convinced with the current grouping. I would find it easier to find the binaries I want if they are grouped as suggested as all the releases would be grouped together. Having said that I haven't got a strong opinion on this so feel free to leave the order as it is.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're talking about different things I think. I look at a single filename, whereas you look at the whole list of filenames in the GitHub release assets, right?
Another option could be something like x64-linux-dbg and x64-windows-rel at the end of the filename, and everything else before, so you have all the "common" software markers at the end, and all WRF-specific things before that separate:
wrf-cmake-4.0-dmpar-basic_nesting-x64-linux-dbg.tar.xz
And maybe mode should come after nesting, since it's more related to the system:
wrf-cmake-4.0-basic_nesting-dmpar-x64-linux-dbg.tar.xz

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right. wrf-cmake-4.0-basic_nesting-dmpar-x64-linux-dbg.tar.xz is my preference. Since it's an extra 2 characters for debug and 4 for release you might as well be explicit with your naming of artefacts. Another addition is to add experimental before the version number:

wrf-cmake-experimental-4.0-basic_nesting-dmpar-x64-linux-debug.tar.xz

but that may be a bit too much... Just a thought.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, let's go with that, and without experimental I would say.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree.

@letmaik
Copy link
Author

letmaik commented May 23, 2019

Note: Do NOT merge yet, there is an issue with delocate on macos: https://dev.azure.com/WRF-CMake/WRF/_build/results?buildId=337

@dmey dmey added this to the 4.1.0 milestone May 25, 2019
@letmaik letmaik changed the title Automate building of Windows and macOS release binaries CI: Automate building of Windows and macOS release binaries Jun 10, 2019
using gcc@8 for wrf together with netcdf-fortran (which links against gcc (=9)) meant we have two libgfortran's which delocate can't deal with.
@letmaik
Copy link
Author

letmaik commented Jul 3, 2019

Issue with macOS is solved now.
Releases build: https://dev.azure.com/WRF-CMake/WRF/_build/results?buildId=491

@letmaik letmaik merged commit c0c049c into wrf-cmake Jul 4, 2019
@letmaik letmaik deleted the letmaik/azp-releases branch July 4, 2019 07:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants