Patch to develop w ci updates #418
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
env: | |
WX_VERSION: '3.2.4' | |
DEFAULT_BRANCH: develop | |
jobs: | |
build-on-ubuntu: | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
steps: | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: wex | |
- name: Set relative paths | |
run: | | |
WXMSW3=$HOME/wx-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Install OS dependencies | |
run: | | |
sudo apt-get update --fix-missing | |
sudo apt-get install -y \ | |
build-essential \ | |
freeglut3-dev \ | |
g++ \ | |
libcurl4-openssl-dev \ | |
libfontconfig-dev \ | |
libgl1-mesa-dev \ | |
libgtk2.0-dev \ | |
mesa-common-dev \ | |
unzip | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-linux | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
cd wxWidgets-$WX_VERSION | |
./configure --prefix=$HOME/wx-$WX_VERSION --enable-shared=no --enable-debug=no --with-gtk=2 --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin --without-libjbig --without-liblzma --without-gtkprint --with-libnotify=no --with-libmspack=no --with-gnomevfs=no --with-opengl=yes --with-sdl=no --with-cxx=11 | |
make -j4 | |
make install | |
sudo ln -s $HOME/wx-$WX_VERSION/bin/wx-config /usr/local/bin/wx-config-3 | |
wx-config-3 --cflags | |
echo $HOME/wx-$WX_VERSION/bin >> $GITHUB_PATH | |
- name: Save wxWidgets build | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wxWidgets-${{ env.WX_VERSION }}-linux | |
path: | | |
${{ env.WXMSW3 }} | |
- name: Get branch name for pull request | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo "GIT_BRANCH=$GITHUB_BASE_REF" >> $GITHUB_ENV | |
- name: Get branch name for push | |
if: ${{ github.event_name == 'push' }} | |
run: | | |
echo "GIT_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Determine branches for other repos | |
shell: bash {0} | |
run: | | |
git ls-remote --heads --exit-code https://github.com/NREL/lk.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "LK_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "LK_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
git ls-remote --heads --exit-code https://github.com/NREL/ssc.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "SSC_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "SSC_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
ref=$(git ls-remote --exit-code https://github.com/NREL/lk.git refs/heads/${LK_BRANCH} | awk '{print $1}') | |
echo "ref_of_lk=$ref" | tee --append $GITHUB_ENV | |
- name: Get cached build data of sibling dependency LK | |
uses: actions/cache@v4 | |
id: cachedlk | |
with: | |
path: lk | |
key: linux-${{ env.ref_of_lk }}-LK | |
- name: Clone sibling dependency LK | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref_of_lk }} | |
path: lk | |
repository: NREL/lk | |
- name: Build LK | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
run: | | |
cd $GITHUB_WORKSPACE/lk | |
cmake -Bbuild_linux -DCMAKE_BUILD_TYPE=Release | |
cmake --build build_linux -j4 | |
- name: Set env vars | |
run: | | |
echo "LKDIR=$GITHUB_WORKSPACE/lk" >>$GITHUB_ENV | |
echo "LK_LIB=$GITHUB_WORKSPACE/lk/build_linux" >>$GITHUB_ENV | |
echo "RAPIDJSONDIR=$GITHUB_WORKSPACE/ssc" >>$GITHUB_ENV | |
- name: Get git ref of sibling dependency SSC | |
shell: bash {0} | |
run: | | |
ref=$(git ls-remote --exit-code https://github.com/NREL/ssc.git refs/heads/${SSC_BRANCH} | awk '{print $1}') | |
echo "ref_of_ssc=$ref" | tee --append $GITHUB_ENV | |
- name: Get cached build data of sibling dependency SSC | |
uses: actions/cache@v4 | |
id: cachedssc | |
with: | |
path: ssc | |
key: windows-${{ env.ref_of_ssc }}-SSC | |
- name: Clone sibling dependency SSC | |
if: steps.cachedssc.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref_of_ssc }} | |
path: ssc | |
repository: NREL/ssc | |
- name: Build WEX | |
run: | | |
cd $GITHUB_WORKSPACE/wex | |
cmake -Bbuild_linux -DCMAKE_BUILD_TYPE=Release | |
cmake --build build_linux | |
- name: Save static lib, Dview & wexsandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: WEX-linux-x86_64 | |
path: | | |
wex/build_linux/tools/DView* | |
wex/build_linux/tools/wexsandbox* | |
wex/build_linux/wex*.a | |
build-on-windows: | |
runs-on: windows-latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
steps: | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: wex | |
- name: Set relative paths | |
shell: bash | |
run: | | |
WXMSW3=$GITHUB_WORKSPACE/wx-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-windows | |
- name: Download wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
shell: bash | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
cd wxWidgets-$env:WX_VERSION | |
msbuild build/msw/wx_vc17.sln /t:Build /p:Configuration=Release /p:Platform=x64 | |
mkdir $env:WXMSW3 | |
cp -r include $env:WXMSW3 | |
cp -r lib $env:WXMSW3 | |
- name: Get branch name for pull request | |
shell: bash | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo "GIT_BRANCH=$GITHUB_BASE_REF" >> $GITHUB_ENV | |
- name: Get branch name for push | |
shell: bash | |
if: ${{ github.event_name == 'push' }} | |
run: | | |
echo "GIT_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Determine branches for other repos | |
continue-on-error: true | |
shell: bash {0} | |
run: | | |
git ls-remote --heads --exit-code https://github.com/NREL/lk.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "LK_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "LK_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
git ls-remote --heads --exit-code https://github.com/NREL/ssc.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "SSC_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "SSC_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
- name: Get git ref of sibling dependency LK | |
shell: bash | |
run: | | |
ref=$(git ls-remote --exit-code https://github.com/NREL/lk.git refs/heads/$LK_BRANCH | awk '{print $1}') | |
echo "ref_of_lk=$ref" | tee --append $GITHUB_ENV | |
- name: Get cached build data of sibling dependency LK | |
uses: actions/cache@v4 | |
id: cachedlk | |
with: | |
path: lk | |
key: windows-${{ env.ref_of_lk }}-LK | |
- name: Checkout lk | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
path: lk | |
repository: NREL/lk | |
ref: ${{ env.LK_BRANCH }} | |
- name: Build LK | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
run: | | |
cd lk | |
mkdir build | |
cd build | |
cmake .. -G "Visual Studio 17 2022" -DCMAKE_CONFIGURATION_TYPES="Release;Debug" -DCMAKE_SYSTEM_VERSION=10 -DSAM_SKIP_TOOLS=1 | |
MSBuild.exe .\lk.sln /t:Build /p:Configuration=Release | |
MSBuild.exe .\lk.sln /t:Build /p:Configuration=Debug | |
- name: Set LK paths | |
shell: bash | |
run: | | |
echo "LKDIR=$GITHUB_WORKSPACE/lk" >>$GITHUB_ENV | |
echo "LKD_LIB=$GITHUB_WORKSPACE/lk/build/Debug" >>$GITHUB_ENV | |
echo "LK_LIB=$GITHUB_WORKSPACE/lk/build/Release" >>$GITHUB_ENV | |
echo "RAPIDJSONDIR=$GITHUB_WORKSPACE/ssc" >>$GITHUB_ENV | |
- name: Get git ref of sibling dependency SSC | |
shell: bash | |
run: | | |
ref=$(git ls-remote --exit-code https://github.com/NREL/ssc.git refs/heads/patch | awk '{print $1}') | |
echo "ref_of_ssc=$ref" | tee --append $GITHUB_ENV | |
- name: Get cached build data of sibling dependency SSC | |
uses: actions/cache@v4 | |
id: cachedssc | |
with: | |
path: ssc | |
key: windows-${{ env.ref_of_ssc }}-SSC | |
- name: Checkout ssc | |
if: steps.cachedssc.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
path: ssc | |
repository: NREL/ssc | |
ref: ${{ env.SSC_BRANCH }} | |
- name: Build WEX | |
run: | | |
cd wex | |
mkdir build | |
cd build | |
cmake -G "Visual Studio 17 2022" -DCMAKE_CONFIGURATION_TYPES="Release" -DCMAKE_SYSTEM_VERSION=10 .. | |
MSBuild.exe .\wex.sln /t:Build /p:Configuration=Release | |
- name: Save static lib, Dview & wexsandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: WEX-windows-x86_64 | |
path: | | |
wex/build/tools/Release/tools/DView.exe | |
wex/build/tools/Release/tools/wexsandbox.exe | |
wex/build/Release/wex.lib | |
build-on-mac: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-14-large, macos-latest] | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB }} | |
steps: | |
- name: Set relative paths | |
run: | | |
WXMSW3=$HOME/wx-$WX_VERSION | |
echo "WXMSW3=$WXMSW3" >> $GITHUB_ENV | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: wex | |
- name: Get cached build of wxWidgets | |
uses: actions/cache@v4 | |
id: cachedwx | |
with: | |
path: ${{env.WXMSW3}}/ | |
key: wxWidgets-${{ env.WX_VERSION }}-${{ matrix.os }} | |
- name: Install wxWidgets | |
if: steps.cachedwx.outputs.cache-hit != 'true' | |
run: | | |
curl -L https://github.com/wxWidgets/wxWidgets/releases/download/v$WX_VERSION/wxWidgets-$WX_VERSION.tar.bz2 -o wxWidgets-$WX_VERSION.tar.bz2 | |
tar jxf wxWidgets-$WX_VERSION.tar.bz2 | |
cd wxWidgets-$WX_VERSION | |
./configure --prefix=$HOME/wx-$WX_VERSION --enable-stl=yes --enable-shared=no --disable-debug_flag --with-cocoa --enable-universal_binary=x86_64,arm64 --enable-unicode --enable-webview --disable-mediactrl --with-cxx=11 --with-macosx-version-min=12 --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin | |
make -j3 | |
make install | |
sudo ln -s $HOME/wx-$WX_VERSION/bin/wx-config /usr/local/bin/wx-config-3 | |
wx-config-3 --cflags | |
echo ${HOME}/wx-$WX_VERSION/bin >> $GITHUB_PATH | |
- name: Get branch name for pull request | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo "GIT_BRANCH=$GITHUB_BASE_REF" >> $GITHUB_ENV | |
- name: Get branch name for push | |
if: ${{ github.event_name == 'push' }} | |
run: | | |
echo "GIT_BRANCH=${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Determine branches for other repos | |
shell: bash {0} | |
run: | | |
git ls-remote --heads --exit-code https://github.com/NREL/lk.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "LK_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "LK_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
git ls-remote --heads --exit-code https://github.com/NREL/ssc.git $GIT_BRANCH | |
if [[ $? != "0" ]]; then echo "SSC_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV; else echo "SSC_BRANCH=$GIT_BRANCH" >> $GITHUB_ENV; fi | |
- name: Get git ref of sibling dependency LK | |
shell: bash {0} | |
run: | | |
ref=$(git ls-remote --exit-code https://github.com/NREL/lk.git refs/heads/$LK_BRANCH | awk '{print $1}') | |
echo "ref_of_lk=$ref" | tee -a $GITHUB_ENV | |
- name: Get cached build data of sibling dependency LK | |
uses: actions/cache@v4 | |
id: cachedlk | |
with: | |
path: lk | |
key: ${{ matrix.os }}-${{ env.ref_of_lk }}-LK | |
- name: Clone sibling dependency LK | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref_of_lk }} | |
path: lk | |
repository: NREL/lk | |
- name: Build LK | |
if: steps.cachedlk.outputs.cache-hit != 'true' | |
run: | | |
cd $GITHUB_WORKSPACE/lk | |
cmake -Bbuild_linux -DCMAKE_BUILD_TYPE=Release | |
cmake --build build_linux -j4 | |
- name: Set env vars | |
run: | | |
echo "LKDIR=$GITHUB_WORKSPACE/lk" >>$GITHUB_ENV | |
echo "LK_LIB=$GITHUB_WORKSPACE/lk/build_linux" >>$GITHUB_ENV | |
echo "RAPIDJSONDIR=$GITHUB_WORKSPACE/ssc" >>$GITHUB_ENV | |
- name: Get git ref of sibling dependency SSC | |
shell: bash {0} | |
run: | | |
ref=$(git ls-remote --exit-code https://github.com/NREL/ssc.git refs/heads/$SSC_BRANCH | awk '{print $1}') | |
echo "ref_of_ssc=$ref" | tee -a $GITHUB_ENV | |
- name: Get cached build data of sibling dependency SSC | |
uses: actions/cache@v4 | |
id: cachedssc | |
with: | |
path: ssc | |
key: ${{ matrix.os }}-${{ env.ref_of_ssc }}-SSC | |
- name: Clone sibling dependency SSC | |
if: steps.cachedssc.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref_of_ssc }} | |
path: ssc | |
repository: NREL/ssc | |
- name: Setup cmake | |
uses: jwlawson/actions-setup-cmake@v2 | |
with: | |
cmake-version: '3.24.x' | |
- name: Build WEX | |
run: | | |
cd wex | |
cmake -Bbuild_linux -DCMAKE_BUILD_TYPE=Release | |
cmake --build build_linux | |
- name: Save static lib, Dview & wexsandbox | |
uses: actions/upload-artifact@v4 | |
with: | |
name: WEX-${{ matrix.os }}-x86_64 | |
path: | | |
wex/build_linux/tools/DView* | |
wex/build_linux/tools/wexsandbox* | |
wex/build_linux/wex*.a | |