-
Notifications
You must be signed in to change notification settings - Fork 441
Post 24.1 Cleanups #10458
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
Post 24.1 Cleanups #10458
Changes from all commits
3b46b63
70667a1
c062f1a
8fb8324
1ff2c68
329edd5
64c3cf4
08e9b37
664f134
ef7014d
bf92f1b
aa598ed
d14a548
71f8b78
040ee1d
0e6c542
a6fc335
0b206e0
424652a
f32d814
95e8e61
fa47f2f
4d54404
b3543b1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,7 +21,7 @@ jobs: | |
fail-fast: false | ||
matrix: | ||
python-version: ["3.9"] | ||
os: [ubuntu-22.04, macos-13, windows-2019] | ||
os: [ubuntu-22.04] # , macos-13, windows-2019] | ||
|
||
runs-on: ${{ matrix.os }} | ||
|
||
|
@@ -45,3 +45,11 @@ jobs: | |
with: | ||
name: energyplus-wheel-${{ matrix.os }} | ||
path: ./dist | ||
|
||
- name: Deploy on Test PyPi | ||
uses: pypa/gh-action-pypi-publish@v1.8.14 | ||
with: | ||
repository-url: https://test.pypi.org/legacy/ | ||
user: __token__ | ||
password: ${{ secrets.TESTPYPIPW }} | ||
verbose: true | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added the command to actually deploy the wheel to PyPi, this is such a great step! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In a subsequent effort, I'll modify this script to be able to deploy to either PyPi or TestPyPi on demand, as well as for each tag. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,19 +11,16 @@ env: | |
Python_REQUIRED_VERSION: 3.8 | ||
|
||
jobs: | ||
linux_release: | ||
build_installer_artifact: | ||
name: Build Installer and Upload # keeping upload in this job so we could potentially download problematic builds | ||
runs-on: ${{ matrix.os }} | ||
continue-on-error: ${{ matrix.allow_failure }} | ||
continue-on-error: false | ||
strategy: | ||
# fail-fast: Default is true, switch to false to allow one platform to fail and still run others | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-20.04, ubuntu-22.04] | ||
include: | ||
- os: ubuntu-20.04 | ||
allow_failure: false | ||
- os: ubuntu-22.04 | ||
allow_failure: false | ||
|
||
permissions: | ||
# Needed permission to upload the release asset | ||
contents: write | ||
|
@@ -58,6 +55,8 @@ jobs: | |
- name: Create Build Directory | ||
run: cmake -E make_directory ./build/ | ||
|
||
# should we pin to a specific version of CMake here like we did on Windows? | ||
|
||
- name: Configure CMake | ||
working-directory: ./build | ||
shell: bash | ||
|
@@ -74,6 +73,15 @@ jobs: | |
shell: bash | ||
run: cmake --build . --target package -j 4 | ||
|
||
- name: Upload Tarball as artifact for testing | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: energyplus-${{ matrix.os }} | ||
path: build/EnergyPlus-*-x86_64.tar.gz | ||
if-no-files-found: error | ||
retention-days: 7 | ||
overwrite: false | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. On all three platforms, I now upload the tarball/zip as an artifact in the first job, and then test the artifact in a fresh container in a second job. |
||
- name: Upload Tarball to release | ||
uses: svenstaro/upload-release-action@v2 | ||
with: | ||
|
@@ -101,3 +109,51 @@ jobs: | |
overwrite: true | ||
file_glob: true | ||
asset_name: ${{ matrix.os }}_LinuxShellInstaller | ||
|
||
|
||
test_package: | ||
name: Test Built Package | ||
needs: build_installer_artifact | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
# fail-fast: Default is true, switch to false to allow one platform to fail and still run others | ||
fail-fast: false | ||
matrix: | ||
name: [20, 22] | ||
include: | ||
- name: 20 | ||
os: ubuntu-20.04 | ||
test_key: ubuntu2004 | ||
- name: 22 | ||
os: ubuntu-22.04 | ||
test_key: ubuntu2204 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 # Still need E+ checked out to get testing scripts | ||
with: | ||
path: checkout | ||
|
||
- name: Set up Python ${{ env.Python_REQUIRED_VERSION }} | ||
uses: actions/setup-python@v4 | ||
id: setup-python | ||
with: | ||
python-version: ${{ env.Python_REQUIRED_VERSION }} | ||
architecture: ${{ matrix.arch }} | ||
|
||
- name: Gather Test Package from Artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: energyplus-${{ matrix.os }} | ||
path: package | ||
|
||
- name: Check Contents | ||
shell: bash | ||
run: ls | ||
|
||
- name: Check Package contents | ||
shell: bash | ||
working-directory: package | ||
run: ls | ||
|
||
- name: Run Package Tests | ||
run: python checkout/scripts/package_tests/runner.py --verbose ${{ matrix.test_key }} package/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,13 +12,16 @@ env: | |
Python_REQUIRED_VERSION: 3.8 | ||
|
||
jobs: | ||
windows_release: | ||
build_installer_artifact: | ||
name: Build Installer and Upload # keeping upload in this job so we could potentially download problematic builds | ||
runs-on: windows-2019 | ||
# to move to windows-2022, just make sure to set the Visual Studio generator build to "17 2022" | ||
continue-on-error: ${{ matrix.allow_failure }} | ||
strategy: | ||
# fail-fast: Default is true, switch to false to allow one platform to fail and still run others | ||
fail-fast: false | ||
|
||
# ** NOTE ** If build names/archs/platforms are changed, make sure to update the release job below | ||
matrix: | ||
name: [x64, x64_hardened] # removed x86 because it won't build packages now | ||
include: | ||
|
@@ -65,13 +68,12 @@ jobs: | |
python -m pip install --upgrade pip | ||
pip install aqtinstall | ||
|
||
|
||
- name: Install System dependencies and LaTeX | ||
shell: bash | ||
run: | | ||
set -x | ||
echo "Downloading MiKTeX CLI installer" | ||
# We download from a specific miror already # TODO: Should store this setup package somewhere ourselves | ||
# We download from a specific mirror already # TODO: Should store this setup package somewhere ourselves | ||
curl -L -O https://ctan.math.illinois.edu/systems/win32/miktex/setup/windows-x64/miktexsetup-5.5.0%2B1763023-x64.zip | ||
unzip miktexsetup-5.5.0%2B1763023-x64.zip | ||
|
||
|
@@ -142,6 +144,15 @@ jobs: | |
shell: bash | ||
run: cmake --build . --target package -j 4 --config $BUILD_TYPE | ||
|
||
- name: Upload Zip as artifact for testing | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: energyplus-${{ matrix.package-arch }} | ||
path: build/EnergyPlus-*-Windows-${{ matrix.package-arch }}.zip | ||
if-no-files-found: error | ||
retention-days: 7 | ||
overwrite: false | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jmarrec for the main build job, I'm just adding the step of uploading the zip as an artifact. I am leaving the rest of it untouched, so it will continue to upload the package to the release as well. If there's a problem with it, so be it, but I thought it was better to let all the installers attempt to upload as normal. |
||
|
||
- name: Upload Zip to release | ||
uses: svenstaro/upload-release-action@v2 | ||
with: | ||
|
@@ -159,3 +170,41 @@ jobs: | |
tag: ${{ github.ref }} | ||
overwrite: true | ||
file_glob: true | ||
|
||
test_package: | ||
name: Test Built Package | ||
needs: build_installer_artifact | ||
runs-on: windows-2019 | ||
|
||
steps: | ||
- uses: actions/checkout@v3 # Still need E+ checked out to get testing scripts | ||
with: | ||
path: checkout | ||
|
||
- name: Set up Python ${{ env.Python_REQUIRED_VERSION }} | ||
uses: actions/setup-python@v4 | ||
id: setup-python | ||
with: | ||
python-version: ${{ env.Python_REQUIRED_VERSION }} | ||
architecture: ${{ matrix.arch }} | ||
|
||
- name: Gather Test Package from Artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: energyplus-x86_64 | ||
path: package | ||
|
||
- name: Check Contents | ||
shell: bash | ||
run: ls | ||
|
||
- name: Check Package contents | ||
shell: bash | ||
working-directory: package | ||
run: ls | ||
|
||
# - name: Setup tmate session | ||
# uses: mxschmitt/action-tmate@v3 | ||
|
||
- name: Run Package Tests | ||
run: python checkout/scripts/package_tests/runner.py --verbose --msvc 2022 win64 package/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -219,7 +219,7 @@ if(BUILD_TESTING) | |
"${CMAKE_SYSTEM_NAME}-${CMAKE_CXX_COMPILER_ID}${ARCH_FLAG}" | ||
CACHE STRING "Identifier for this device configuration") | ||
endif() | ||
|
||
set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1) # This avoids all the CTest Nightly, Continuous, etc. tests. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Simply hush up a bunch of random ctest target projects, no functional change. |
||
enable_testing() | ||
endif() | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -77,13 +77,21 @@ | |
from sys import exit, path | ||
from tempfile import mkdtemp | ||
|
||
DO_BUILD = False | ||
|
||
repo_root = Path(__file__).resolve().parent.parent.parent | ||
build_dir = repo_root / 'builds' / 'r' | ||
products_dir = build_dir / 'Products' | ||
file_to_run = repo_root / 'testfiles' / 'PythonPluginCustomOutputVariable.idf' | ||
|
||
# this will automatically build E+ each run, so you can quickly make changes and re-execute inside the debugger | ||
check_call(['make', '-j', str(cpu_count() - 2), 'energyplus'], cwd=str(build_dir)) | ||
if DO_BUILD: | ||
build_dir = repo_root / 'cmake-build-debug' | ||
products_dir = build_dir / 'Products' | ||
make_tool = '/snap/clion/current/bin/ninja/linux/x64/ninja' # 'make' | ||
|
||
# this will automatically build E+ each run, so you can quickly make changes and re-execute inside the debugger | ||
check_call([make_tool, '-j', str(cpu_count() - 2), 'energyplus'], cwd=str(build_dir)) | ||
else: | ||
products_dir = '/tmp/EnergyPlus-24.1.0-241fc81186-Linux-Ubuntu22.04-x86_64' | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just random things added to the debug script. I doubt anyone else will be using this, so just ignore. |
||
|
||
path.insert(0, str(products_dir)) | ||
from pyenergyplus.api import EnergyPlusAPI | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All the remaining changes below are the contents of the ep_testing library that we are using to test EnergyPlus packages! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now wheels are only going to work on Linux, and they aren't proper
manylinux
wheels yet anyway. But it's close. This will be my next major effort.