Myoldmopar/decent_ci

View on GitHub
docs/file.README.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
  File: README
  
    &mdash; Documentation by YARD 0.9.19
  
</title>

  <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />

  <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />

<script type="text/javascript" charset="utf-8">
  pathId = "README";
  relpath = '';
</script>


  <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>

  <script type="text/javascript" charset="utf-8" src="js/app.js"></script>


  </head>
  <body>
    <div class="nav_wrap">
      <iframe id="nav" src="file_list.html?1"></iframe>
      <div id="resizer"></div>
    </div>

    <div id="main" tabindex="-1">
      <div id="header">
        <div id="menu">
  
    <a href="_index.html">Index</a> &raquo; 
    <span class="title">File: README</span>
  
</div>

        <div id="search">
  
    <a class="full_list_link" id="class_list_link"
        href="class_list.html">

        <svg width="24" height="24">
          <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
          <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
        </svg>
    </a>
  
</div>
        <div class="clear"></div>
      </div>

      <div id="content"><div id='filecontents'><h1>decent_ci</h1>

<p><a href="https://github.com/Myoldmopar/decent_ci/actions/workflows/rubocop.yml"><img src="https://github.com/Myoldmopar/decent_ci/actions/workflows/rubocop.yml/badge.svg" alt="RuboCop"></a>
<a href="https://github.com/Myoldmopar/decent_ci/actions/workflows/test.yml"><img src="https://github.com/Myoldmopar/decent_ci/actions/workflows/test.yml/badge.svg" alt="Unit Tests"></a>
<a href="https://coveralls.io/github/Myoldmopar/decent_ci?branch=master"><img src="https://coveralls.io/repos/github/Myoldmopar/decent_ci/badge.svg?branch=master" alt="Coverage Status"></a>
<a href="https://codeclimate.com/github/Myoldmopar/decent_ci/maintainability"><img src="https://api.codeclimate.com/v1/badges/2ec29367c38e431d4b8a/maintainability" alt="Maintainability"></a></p>

<p>Forked from <a href="https://github.com/lefticus/decent_ci">https://github.com/lefticus/decent_ci</a>, tailored to <a href="https://github.com/NREL/EnergyPlus">EnergyPlus </a> specific needs.  If you are using this fork of it for anything other than EnergyPlus, please be aware we are not guaranteeing anything stable here.</p>

<p>Decent CI is a decentralized continuous integration system for cmake based projects designed for use with github.</p>

<p>It queries a given repository for a the set of branches and pull requests. The project is written in ruby and requires:</p>

<ul>
<li>ruby

<ul>
<li>octokit gem</li>
<li>activesupport gem</li>
</ul></li>
<li>git</li>
</ul>

<p>To configure your application for use with Decent CI, you need put appropriate <code>.decent_ci*.yml</code> files in the root of your project. Only branches which contain the required files will be tested.</p>

<p>Examples can be found in the <a href="confs">confs</a> folder.</p>

<p>Decent CI is tested on Windows, Linux and MacOS.</p>

<h1>Windows Installation / Usage</h1>

<p>TO BE UPDATED</p>

<ol>
<li>Install git bash <a href="http://git-scm.com/download/win">http://git-scm.com/download/win</a></li>
<li>Install python <a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a> add it to the path (needed for energyplus regressions)</li>
<li>Install ruby 2.0+ <a href="http://rubyinstaller.org/downloads/">http://rubyinstaller.org/downloads/</a> add it to the path</li>
<li>Install cmake <a href="http://www.cmake.org/cmake/resources/software.html">http://www.cmake.org/cmake/resources/software.html</a> add it to the path</li>
<li>Install mingw fortran if desired (for EnergyPlus) add it to the path</li>
<li>Download the updated windows ssl certificate file and add <code>SSL_CERT_FILE</code> environment variable pointing to it. See here: <a href="https://gist.github.com/fnichol/867550">https://gist.github.com/fnichol/867550</a></li>
<li><code>gem install octokit activesupport</code></li>
<li>Get gist from here <a href="https://gist.github.com/lefticus/10914850">https://gist.github.com/lefticus/10914850</a></li>
<li>Create github token for the user</li>
<li>Launch git bash, execute <code>ruby ./run_ci.rb &lt;build_folder&gt; &lt;true/false test mode&gt; &lt;token&gt; &lt;respository&gt;</code></li>
</ol>

<h1>MacOS Installation / Usage</h1>

<ol>
<li>Install ruby gems octokit and activesupport. You may need to follow these instructions <a href="http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fails-on-mavericks-and-xcode-5-1-unknown-argument-mul">http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fails-on-mavericks-and-xcode-5-1-unknown-argument-mul</a>, then  <code>sudo gem install octokit activesupport</code></li>
<li>Need to get-pip: <code>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py</code>, then <code>sudo python get-pip.py</code></li>
<li>Install Python deps: <code>sudo pip install boto beautifulsoup4 soupsieve</code></li>
<li>Install CMake (download from web), install command line tools</li>
<li>Install GFortran (download from <a href="https://github.com/fxcoudert/gfortran-for-macOS/releases">https://github.com/fxcoudert/gfortran-for-macOS/releases</a>)</li>
<li>Install MacTeX (download from web)</li>
<li>Install IFW (download from <a href="https://download.qt.io/official_releases/qt-installer-framework/">https://download.qt.io/official_releases/qt-installer-framework/</a>)</li>
<li>You&#39;ll then want to symlink the binarycreator somewhere on PATH so CMake picks it up</li>
<li>Need to consider CCache</li>
<li>Get gist from here <a href="https://gist.github.com/c51580a92556ef344216c22ec390aa31.git">https://gist.github.com/c51580a92556ef344216c22ec390aa31.git</a></li>
<li>Create github token for the user</li>
<li>Execute <code>ruby ./run_ci.rb &lt;build_folder&gt; &lt;true/false test mode&gt; &lt;token&gt; &lt;respository&gt;</code></li>
</ol>

<h1>Linux Installation / Usage</h1>

<pre class="code ruby"><code class="ruby">sudo apt-get install git cmake g++ gfortran cmake-curses-gui curl ccache python-pip texlive-full valgrind lcov gcovr clang-format cppcheck
pip install boto beautifulsoup4 soupsieve
sudo gem install activesupport octokit
cd ~
mkdir ~/ci
git clone https://gist.github.com/c51580a92556ef344216c22ec390aa31.git ci_script
cd ci_script
ruby run_ci.rb ~/ci &lt;AWS_STUFF&gt; &lt;true/false test mode&gt; &lt;GH_TOKEN&gt; NREL/EnergyPlus
</code></pre>

<h1>Documentation</h1>

<p>Documentation is currently stubbed out, and needs to be fully fleshed out.
In any case, the docs are built using Yard.
To get started, <code>gem install yard</code> or bundle it from the doc section of the Gemfile.
Then from the root of the repo, just run <code>yardoc</code>, and it will scan the lib directory, generating html docs and dropping them into the <code>docs/</code> folder.
GitHub then hosts the documentation on the GitHub page: <a href="https://myoldmopar.github.io/decent_ci/">https://myoldmopar.github.io/decent_ci/</a> </p>
</div></div>

      <div id="footer">
  Generated on Thu May 18 10:34:59 2023 by
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.9.19 (ruby-2.7.0).
</div>

    </div>
  </body>
</html>