Skip to content

Commit

Permalink
Disable some GHA workflows, re-enable some Decent builds
Browse files Browse the repository at this point in the history
  • Loading branch information
Myoldmopar committed Sep 4, 2024
1 parent 4068418 commit f878759
Show file tree
Hide file tree
Showing 9 changed files with 174 additions and 81 deletions.
35 changes: 35 additions & 0 deletions .decent_ci-Linux.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
compilers:
- name: "gcc"
version: "11.4"
cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DBUILD_PERFORMANCE_TESTS:BOOL=ON -DVALGRIND_ANALYZE_PERFORMANCE_TESTS:BOOL=ON -DENABLE_PCH:BOOL=OFF
collect_performance_results: true
skip_regression: true
s3_upload_bucket: energyplus

- name: "gcc"
version: "11.4"
build_type: RelWithDebInfo
cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF
coverage_enabled: true
coverage_base_dir: src/EnergyPlus
coverage_pass_limit: 41.0
coverage_warn_limit: 40.0
coverage_s3_bucket: energyplus
build_tag: UnitTestsCoverage
ctest_filter: -E "integration.*"
skip_regression: true
skip_packaging: true

- name: "gcc"
version: "11.4"
build_type: RelWithDebInfo
cmake_extra_flags: -DLINK_WITH_PYTHON:BOOL=ON -DPython_REQUIRED_VERSION:STRING=3.12.2 -DPython_ROOT_DIR:PATH=~/.pyenv/versions/3.12.2/ -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DENABLE_REGRESSION_TESTING:BOOL=OFF -DCOMMIT_SHA:STRING=$COMMIT_SHA -DENABLE_COVERAGE:BOOL=ON -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DENABLE_PCH:BOOL=OFF
coverage_enabled: true
coverage_base_dir: src/EnergyPlus
coverage_pass_limit: 66.0
coverage_warn_limit: 67.0
coverage_s3_bucket: energyplus
build_tag: IntegrationCoverage
ctest_filter: -R "integration.*"
skip_regression: true
skip_packaging: true
6 changes: 6 additions & 0 deletions .decent_ci-Windows.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
compilers:
- name: Visual Studio
version: 16
architecture: Win64
cmake_extra_flags: -DBUILD_FORTRAN:BOOL=ON -DBUILD_TESTING:BOOL=ON -DCOMMIT_SHA=%COMMIT_SHA% -DENABLE_GTEST_DEBUG_MODE:BOOL=OFF -DLINK_WITH_PYTHON=ON -DPython_EXECUTABLE:PATH=C:/Users/elee/AppData/Local/Programs/Python/Python312/python.exe
skip_regression: true
12 changes: 12 additions & 0 deletions .decent_ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
results_repository : Myoldmopar/EnergyPlusBuildResults
results_path : _posts
results_base_url : https://myoldmopar.github.io/EnergyPlusBuildResults
regression_repository : NREL/EnergyPlusRegressionTool
regression_branch : BumpToBoto3 # this is the branch of NREL/EnergyPlusRegressionTool to use (usually main)
regression_baseline_default : develop # this is the NREL/EnergyPlus branch to use as the baseline for regressions
regression_baseline_develop : ""
regression_baseline_master : ""
notification_recipients:
- myoldmopar
aging_pull_requests_notification: true
aging_pull_requests_numdays: 28
63 changes: 63 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Overview

This folder is, of course, where our GitHub Action workflows live.
I made a significant effort to pull us completely over from Decent CI to GitHub Actions, in PR #10683.
While everything looked good in testing, it seems the number of CI runs was too much for the NREL org.
I reverted it right away, and am going to retry later, probably with the help of some self-hosted runners.
This README is really just a place to drop current status while I figure out what to add back in next.

# Current Configuration

- build_checksums.yml
- Runs on demand or on branches named "checksum"
- build_documentation.yml
- Runs on Windows and Linux to test MikTeX and TeXLive
- Linux takes 5 minutes and Windows takes 9 minutes
- build_wheels.yml
- Runs on demand, on Linux only for now
- release_*.yml
- Only works on tags
- Runs on all three platforms
- test_code_integrity.yml
- Runs on Linux, about 22 minutes
- test_debug_builds.yml
- Currently not running at all because of runtime
- Maybe push these onto self-hosted runners soon
- test_develop_commits.yml
- Only running Mac builds, as they are fast
- Then maybe push these onto self-hosted runners for Windows and Ubuntu
- test_epjson.yml
- Currently running just on Windows to save CI time
- In the future, probably expand it back out to all platforms
- Approximately 3 minute runtime
- test_pull_requests.yml
- In this PR I am adding Mac builds back in with new regressions
- In the future expand these onto self-hosted runners for Windows and Ubuntu
- verify_pr_labels.yml
- Runs on Linux, and less than a minute

Thus for a typical PR push, it will start up:

- Documentation - Windows: 9 minutes
- Documentation - Linux: 5 minutes
- Code integrity - Linux: 22 minutes
- EpJSON - Windows: 3 minutes
- PR Labeling - Linux: 1 minute
- Test PR Including Regressions - Mac: 49 minutes

Which is a total of Windows: 12 minutes, Linux: 38 minutes, Mac: 49 minutes.

Decent CI will be supplementing with:

- Linux Debug Unit Test Coverage
- Linux Debug Integration Test Coverage
- Linux Release Build and Test Without Regressions
- Windows Release Build and Test Without Regressions

# TODO

- Could add some logic in the documentation workflow to only run if docs changed
- on: push: paths: '**.tex'
- But...we would also want to consider other changes that affect docs, like CMake config, versioning, etc.
- Get all docs to ReadTheDocs and eliminate our TeX entirely.................................
- Set up Self-Hosted runners and see how that goes
File renamed without changes.
File renamed without changes.
72 changes: 36 additions & 36 deletions .github/workflows/test_develop_commits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ jobs:
fail-fast: false
matrix:
include:
- os: macos-12
macos_dev_target: 12.1
arch: x86_64
python-arch: x64
generator: "Unix Makefiles"
nproc: 3
pretty: "Standard Build on Mac x64"
alternate: false
# - os: macos-12
# macos_dev_target: 12.1
# arch: x86_64
# python-arch: x64
# generator: "Unix Makefiles"
# nproc: 3
# pretty: "Standard Build on Mac x64"
# alternate: false
- os: macos-14
macos_dev_target: 13.0
arch: arm64
Expand All @@ -37,34 +37,34 @@ jobs:
nproc: 3
pretty: "Standard Build on Mac arm64"
alternate: false
- os: ubuntu-24.04
arch: x86_64
python-arch: x64
generator: "Unix Makefiles"
nproc: 4
pretty: "Standard Build on Ubuntu 24.04"
alternate: false
- os: windows-2019
arch: x86_64
python-arch: x64
generator: "Visual Studio 16 2019"
nproc: 4
pretty: "Windows VS 2019"
alternate: false
- os: windows-2022
arch: x86_64
python-arch: x64
generator: "Visual Studio 17 2022"
nproc: 4
pretty: "Standard Build on Windows VS 2022"
alternate: false
- os: ubuntu-24.04
arch: x86_64
python-arch: x64
generator: "Unix Makefiles"
nproc: 4
pretty: "Alternate Build on Ubuntu 24.04"
alternate: true
# - os: ubuntu-24.04
# arch: x86_64
# python-arch: x64
# generator: "Unix Makefiles"
# nproc: 4
# pretty: "Standard Build on Ubuntu 24.04"
# alternate: false
# - os: windows-2019
# arch: x86_64
# python-arch: x64
# generator: "Visual Studio 16 2019"
# nproc: 4
# pretty: "Windows VS 2019"
# alternate: false
# - os: windows-2022
# arch: x86_64
# python-arch: x64
# generator: "Visual Studio 17 2022"
# nproc: 4
# pretty: "Standard Build on Windows VS 2022"
# alternate: false
# - os: ubuntu-24.04
# arch: x86_64
# python-arch: x64
# generator: "Unix Makefiles"
# nproc: 4
# pretty: "Alternate Build on Ubuntu 24.04"
# alternate: true

steps:

Expand Down
37 changes: 7 additions & 30 deletions .github/workflows/test_epjson.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,8 @@ env:

jobs:
release:
name: Testing on ${{ matrix.pretty }}
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:
include:
- os: ubuntu-latest
pretty: "Ubuntu"
- os: windows-latest
pretty: "Windows"
- os: macos-latest
pretty: "Mac"
name: Testing on Windows
runs-on: windows-latest

steps:
- uses: actions/checkout@v4
Expand All @@ -34,24 +23,13 @@ jobs:
with:
python-version: '3.10'

- name: Setup
- name: Install Pip Stuff
shell: bash
run: |
cmake -E make_directory ./build/
if [ "$RUNNER_OS" == "Windows" ]; then
echo "Setting CMAKE_GENERATOR options equivalent to ='-G \"Visual Studio 17 2022\" -A x64'"
echo CMAKE_GENERATOR='Visual Studio 17 2022' >> $GITHUB_ENV
echo CMAKE_GENERATOR_PLATFORM=x64 >> $GITHUB_ENV
choco install ninja
elif [ "$RUNNER_OS" == "macOS" ]; then
echo MACOSX_DEPLOYMENT_TARGET=12.1 >> $GITHUB_ENV
fi;
pip install pytest pytest-timeout
run: pip install pytest pytest-timeout

- name: Configure CMake
working-directory: ./build
run: |
cmake ../
working-directory: ./build # TODO: Wait...it will automatically create it?
run: cmake -G "Visual Studio 17 2022" -A x64 ../

- name: Test epjson
shell: python
Expand Down Expand Up @@ -123,5 +101,4 @@ jobs:
- name: Run idd_schema pytests
working-directory: ./build
run: |
pytest --verbose ../idd
run: pytest --verbose ../idd
30 changes: 15 additions & 15 deletions .github/workflows/test_pull_requests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Build and Test

on:
pull_request:
branches: [ develop ] # TODO: Run this on any PR, and compare to baseline branch, not necessarily develop. Also perhaps non-draft PRs only.
branches: [ develop ]

defaults:
run:
Expand Down Expand Up @@ -31,20 +31,20 @@ jobs:
nproc: 3
run_regressions: true
pretty: "Mac arm64"
- os: ubuntu-24.04
arch: x86_64
python-arch: x64
generator: "Unix Makefiles"
nproc: 4
run_regressions: false
pretty: "Ubuntu 24.04"
- os: windows-2022
arch: x86_64
python-arch: x64
generator: "Visual Studio 17 2022"
nproc: 4
run_regressions: false
pretty: "Windows x64"
# - os: ubuntu-24.04
# arch: x86_64
# python-arch: x64
# generator: "Unix Makefiles"
# nproc: 4
# run_regressions: false
# pretty: "Ubuntu 24.04"
# - os: windows-2022
# arch: x86_64
# python-arch: x64
# generator: "Visual Studio 17 2022"
# nproc: 4
# run_regressions: false
# pretty: "Windows x64"

steps:

Expand Down

4 comments on commit f878759

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

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

MacBuildsOnGHA (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4: OK (2893 of 2893 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot
Copy link

Choose a reason for hiding this comment

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

MacBuildsOnGHA (Myoldmopar) - Win64-Windows-10-VisualStudio-16: OK (2871 of 2871 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

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

MacBuildsOnGHA (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4-IntegrationCoverage-RelWithDebInfo: OK (799 of 799 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2
Copy link

Choose a reason for hiding this comment

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

MacBuildsOnGHA (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4-UnitTestsCoverage-RelWithDebInfo: OK (2077 of 2077 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

Please sign in to comment.